我有Solr索引数据库。在我的数据库中,所有数据都是拉脱维亚语。问题是,我需要能够搜索单词Riga,好像它是单词Rīga。当然,我可以定义同义词 - 里加=里加,但我可以定义,那封信ī是字母i?我读了一些关于solr.ISOLatin1AccentFilterFactory的内容,但据我所知,这不适用于UTF-8编码,对吧?建议?
答案 0 :(得分:2)
使用带有索引和查询的PatternReplaceFilterFactory。似乎工作正常。
答案 1 :(得分:1)
ISOLatin1AccentFilterFactory正是您正在寻找的......只要latin-1字符集中的重音EXISTS(UTF-8的低7位与latin-1相同)。您提到的ī似乎不存在于ISO-8859-1中,因此ISOLatin1AccentFilterFactory在此特定情况下不起作用。我仍然建议您使用ISOLatin1AccentFilterFactory以及使用PatternReplaceFilterFactory处理的任何异常,因为可能有一些拉脱维亚字符会有所帮助(假设,我没有使用拉脱维亚语的经验)
仅供参考,我确实尝试使用ISOLatin1AccentFilterFactory对抗我的Solr设置,但这并没有帮助。
答案 2 :(得分:1)
查看提供Unicode字符规范化的ICUTokenizerFactory。非常有用且非常容易。
http://lucene.apache.org/solr/api/org/apache/solr/analysis/ICUTokenizerFactory.html