我正在尝试使用Solr(或Lucene)设置一个搜索引擎,该搜索引擎可能包含带有特殊字符的拉丁语文本(特殊字符将包括Ö或Ç作为示例)或Cyrilic字符(示例包括Б或б和Жж)。
无论如何,我试图找到一个解决方案,允许我在其中搜索带有这些字符的单词,但是对于没有键盘上的键的用户...
示例是(在这里编写单词,希望不会冒犯任何人):
那么,我应该怎么做呢?我的一些理论是:
有什么想法吗?有人试过这个吗?
答案 0 :(得分:1)
看一下Solr's Analyzers, Tokenizers, and Token Filters,它会为您提供有关您正在寻找的操作类型的简介。
答案 1 :(得分:1)
您需要在索引和查询文本分析中使用重音过滤器,这会将外国字符转换为英文版
您可以使用ISOLatin1AccentFilterFactory或ASCIIFoldingFilterFactory,具体取决于您使用的Solr版本。
e.g。
<filter class="solr.ASCIIFoldingFilterFactory" />
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ISOLatin1AccentFilterFactory
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ASCIIFoldingFilterFactory
所以 - “BÖÖK”将在Solr中被转换并索引为“book” 这将使用户能够搜索书籍和BÖÖK,并仍然可以取回文件。