1

我有带有索引数据库的 Solr。在我的数据库中,所有数据都是拉脱维亚语。问题是,我需要能够像搜索单词 Rīga 一样搜索单词 Riga。当然,我可以定义同义词-Rīga = Riga,但我可以定义那个字母ī是字母i吗?我读过一些关于 solr.ISOLatin1AccentFilterFactory 的内容,但据我所知,这不是用于 UTF-8 编码的,对吧?建议?

4

3 回答 3

2

使用带有索引和查询的 PatternReplaceFilterFactory。似乎工作正常。

于 2009-11-19T09:48:19.093 回答
1

ISOLatin1AccentFilterFactory 正是您正在寻找的......只要在 latin-1 字符集中存在重音(UTF-8 的低 7 位与 latin-1 相同)。您提到的 ī 在 ISO-8859-1 中似乎不存在,因此 ISOLatin1AccentFilterFactory 在这种特定情况下不起作用。我仍然建议您使用 ISOLatin1AccentFilterFactory 除了您使用 PatternReplaceFilterFactory 处理的任何例外情况之外,因为可能有一些拉脱维亚字符会有所帮助(假设我没有拉脱维亚语的经验)

仅供参考,我确实尝试过使用 ISOLatin1AccentFilterFactory 对我的 Solr 设置进行尝试,但这对这种情况没有帮助。

于 2009-11-23T21:01:52.133 回答
1

查看提供 Unicode 字符规范化的 ICUTokenizerFactory。非常有用且非常简单。

http://lucene.apache.org/solr/api/org/apache/solr/analysis/ICUTokenizerFactory.html

http://site.icu-project.org/

于 2011-10-25T20:07:39.773 回答