Обработка различных версий нес диакритическим знаком символов Umlaut

Немецкие символы Umlaut с диакритическим знаком “ö”, “ä” и “ü” часто заменяются версиями нес диакритическим знаком, когда пользователи вводят, часто для удобства, когда у них нет корректной клавиатуры.

С наиболее символами с диакритикой существует конкретная версия нес диакритическим знаком, которую использует большинство людей. “è” с диакритическим знаком, например, всегда заменяется стандартом “e”.

С символами Umlaut, кажется, существует различие между конвенцией, принятой нашими британцами и нашими американскими пользователями.

Британские пользователи заменят их “o”, и “u” соответственно, где как...
Американские пользователи заменят их “oe”, “одним” и “ue” соответственно.

Наш поиск основан на Lucene. Сеть, и как с любой поисковой платформой, техника, используемая для соответствия всем комбинациям символов с диакритикой, должна заменить их, и когда индекс создается и когда критерии поиска предоставляются, поэтому позволяя соответствию быть сделанными с чисто несимволами с диакритикой.

Как я проанализировал бы символы с диакритикой для поддержки следующего...

Немецкий клиент вводит – “Götz”
Британский клиент вводит – “Gotz”
Американский клиент вводит “Goetz”

Учитывая, что имя находится в нашей базе данных в ее правильной форме “Götz”, затем как я проанализировал бы “Götz” так, чтобы все три из пользователей могли найти его в индексе?

Править

Я нашел эту статью о CodeProject, который был точно, что я искал. Пример показывает, как Синонимы для слов могут также быть добавлены к индексу Lucene так, чтобы они были подобраны, а также оригинальное слово. С маленькой адаптацией я смог сделать точно, что я хотел.

1
задан Andy McCluggage 28 June 2010 в 12:42
поделиться

1 ответ

Преобразовать «Гетц» как в «Гоц», так и в «Гетц» в индексное время. Вы можете использовать setPositionIncrement (0) для второго термина, чтобы поиск по фразе работал правильно.

2
ответ дан 2 September 2019 в 23:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: