2010-06-25 3 views
1

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

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

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

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

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

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

немца типы клиентов - «Гоц»
британского типа клиентов - «Гоц»
американских типы клиентов «Гетц "

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

EDIT

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

ответ

0

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

+0

Добавил это из моего вопроса Edit, чтобы был принят ответ на этот вопрос. –

2

Конвертировать «Götz» как «Gotz», так и «Goetz» в индексное время. Вы можете использовать setPositionIncrement(0) во втором термине, чтобы корректно выполнять поиск фразы.

+0

Большое спасибо за предложение. Это поставило меня на правильный путь, что позволило мне найти хорошую статью о CodeProject, которая была именно то, что мне нужно. См. Выше –

Смежные вопросы