Вопрос

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

Это было полезно?

Решение

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

Другие советы

ISOLatin1AccentFilterFactory - это именно то, что вы ищете...до тех пор, пока акцент СУЩЕСТВУЕТ в наборе символов latin-1 (младшие 7 бит UTF-8 идентичны latin-1).Файл, который вы упомянули, по-видимому, не существует в ISO-8859-1, поэтому ISOLatin1AccentFilterFactory не будет работать в этом КОНКРЕТНОМ случае.Я бы по-прежнему рекомендовал вам использовать ISOLatin1AccentFilterFactory в дополнение к любым исключениям, о которых вы заботитесь, используя PatternReplaceFilterFactory, поскольку, вероятно, есть некоторые латышские символы, которым это поможет (предполагая, что у меня нет опыта работы с латышским)

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top