Solr - замена персонажа

У меня есть Solr с индексированной базой данных. В моей базе данных все данные на латышском языке. Проблема в том, что мне нужно искать слово "Рига" так, как будто это слово "Рига". Конечно, я могу определить синоним Rīga = Riga, но могу ли я просто определить, что буква i - это буква i? Я читал кое-что о solr.ISOLatin1AccentFilterFactory, но, насколько я понял, это не для кодировки UTF-8, верно? Советы?

3 ответа

Решение

Использовал PatternReplaceFilterFactory с индексом и запросом. Кажется, работает правильно.

Посмотрите на ICUTokenizerFactory, которая обеспечивает нормализацию символов Unicode. Чрезвычайно полезно и очень легко.

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

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

ISOLatin1AccentFilterFactory - это именно то, что вы ищете... до тех пор, пока акцент существует в наборе символов латинского-1 (младшие 7 битов UTF-8 идентичны латинскому-1). Я упомянул, что, по-видимому, не существует в ISO-8859-1, поэтому ISOLatin1AccentFilterFactory не будет работать в этом конкретном случае. Я по-прежнему рекомендую использовать ISOLatin1AccentFilterFactory в дополнение к любым исключениям, которые вы позаботитесь об использовании PatternReplaceFilterFactory, так как, вероятно, есть некоторые латышские символы, которые ему помогут (при условии, что у меня нет опыта работы с латышским языком)

К вашему сведению, я действительно попробовал против моей установки Solr с ISOLatin1AccentFilterFactory, и это не помогло в этом случае.

Другие вопросы по тегам