Solr, специальные символы и преобразование символов латиницы в кириллицу - PullRequest
3 голосов
/ 05 октября 2011

Я пытаюсь настроить поисковую систему, используя Solr (или Lucene), который может иметь текст как на латинице со специальными символами (например, специальные символы будут включать Ö или Ç), так и символы кириллицы (примеры включают В или В иЖ ж).

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

Примербудет (составляя слова здесь, надеюсь, никого не обидит):

  • "BÖÖK" будет найден при поиске "book"
  • "ЖРАЙ" будет найден, когдапоиск XRAY
  • «ЖРАЙ» также будет найден при поиске ZRAY, ZHRAY или žray (см. ГОСТ 16876-71 для получения информации о транслитерации цилирического на латинский Char.

Итак, как мне поступить? Некоторые теории, которые у меня есть:

  • позволяют хранить несколько текстовых полей для каждой исходной строки, одно в исходной форме, одно впервый проход транслитерации (который, например, преобразует Ö в просто O и Ж в ž, но также в X), а затем один в третьей форме (от ž до z или zh) -> означает, что я буду хранить LOTданных ...
  • сохранить в solr как есть, и пусть Solr сделает этомагия -> не знаю, насколько хорошо это будет работать ... я не вижу ничего в solr, чтобы сделать это
  • Волшебная пуля, которую я еще не нашел ...

Есть идеи?Кто-нибудь пробовал это раньше?

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Вам нужно использовать фильтр акцента в своем индексе и анализе текста запроса, который будет конвертировать иностранные символы в их английскую версию

Вы можете использовать ISOLatin1AccentFilterFactory или ASCIIFoldingFilterFactory в зависимости от используемой версии Solr.

например,

 <filter class="solr.ASCIIFoldingFilterFactory" />

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ISOLatin1AccentFilterFactory
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ASCIIFoldingFilterFactory

Так что "BÖÖK" будет преобразовано и проиндексировано как "book" в Solr.
Thisпозволит пользователям выполнять поиск как по книге, так и по книге BÖÖK и при этом получать документ обратно.

1 голос
/ 05 октября 2011

Взгляните на Анализаторы, токенизаторы и фильтры токенов Solr , которые дают вам хорошее представление о типе манипуляции, которую вы ищете.

...