Обработка различных неакцентированных версий символов умлаут - PullRequest
1 голос
/ 25 июня 2010

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

Для большинства акцентированных персонажей существует определенная не акцентированная версия, которую использует большинство людей. Например, акцентированный «è» всегда заменяется стандартным «e».

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

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

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

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

Немецкий тип клиентов - «Гётц»
Британский тип клиентов - «Готц»
Американский клиент печатает «Гетц»

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

EDIT

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

Ответы [ 2 ]

2 голосов
/ 25 июня 2010

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

0 голосов
/ 16 сентября 2011

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

...