【发布时间】:2014-05-08 00:01:01
【问题描述】:
我们如何将非 ASCII 字符映射到 ASCII 字符?
例如:在 solr 索引中,我们的单词包含 char ñ, Ñ [LATIN CAPITAL LETTER N WITH TILDE] 或正常的 n,N 然后我们使用什么过滤器/标记来搜索 Normal N 或 Ñ 并且都映射了。
【问题讨论】:
我们如何将非 ASCII 字符映射到 ASCII 字符?
例如:在 solr 索引中,我们的单词包含 char ñ, Ñ [LATIN CAPITAL LETTER N WITH TILDE] 或正常的 n,N 然后我们使用什么过滤器/标记来搜索 Normal N 或 Ñ 并且都映射了。
【问题讨论】:
合并Solr, Special Chars, and Latin to Cyrilic char conversion的答案
在更改分析器以删除重音符号时,请记住您需要重新索引。否则重音字符将保留在索引中,但无法创建用户输入来匹配它们。
更新
我尝试使用the ICUFoldingFilterFactory,这与这些口音效果很好。如果这个设置起来很棘手,请查看 SO question Can not use ICUTokenizerFactory in Solr
这个分析器
<fieldType name="spanish" class="solr.TextField">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.ICUFoldingFilterFactory" />
</analyzer>
</fieldType>
得到这些分析结果,屏幕截图来自 solr-admin
【讨论】: