Вопрос
У меня есть 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