如何使用 Apache Solr 处理不同的 UTF-8 规范化?

How to handle different UTF-8 normalizations with Apache Solr?

我们正在获取不同 UTF-8 规范化的数据。大多数时候我们确实得到了 UTF-8 组合,但也有 UTF-8 分解。我们想用 Apache Solr 搜索这些数据,但现在 运行 遇到了一些麻烦。我给你举个例子(Rabbi Akiva Eger):

(1) NFD:    ʿAqîvâ Ben-Moše Êger    cabf417169cc827661cc822042656e2d4d6f73cc8c652045cc82676572
(2) NFC:    ʿAqîvâ Ben-Moše Êger    cabf4171c3ae76c3a22042656e2d4d6fc5a16520c38a676572
(3) ASCII:  Aqiva Ben-Mose Eger     41716976612042656e2d4d6f73652045676572

我们发现 Solr 不处理 (1) 等于 (2) 或 (3)。这对我们来说是一个问题,因为只能通过键盘轻松输入 ASCII 字符。当您搜索 (3) – 用键盘输入 – 您将找不到 (1) 或 (2) 的数据。

是否有一种简单的方法可以通过 Solr 选项启用此功能,或者我们是否需要在我们的搜索索引中以 UTF-8 NFC、NFD 和 ASCII 格式输出数据以获取所有三种变体的搜索结果!?

solr.ICUNormalizer2FilterFactory 应该可以解决问题。