Многоязычный поисковый индекс Solr - PullRequest
1 голос
/ 02 мая 2009

Я настраиваю поисковую систему Solr, которая будет индексировать несколько языков. Я создал пользовательский UpdateProcessorFactory, чтобы выяснить, какие разделы входного текста и на каком языке, и затем я копирую эти разделы документа в специфичные для языка поля. Например, с этим текстом:

"Hello World, Bonjour le Monde, Hallo Welt."

Копирует «Hello World» в текстовое поле, «Bonjour le Monde» в текстовое поле и «Hallo Welt» в текстовое поле. Каждое поле имеет соответствующие анализаторы языка для токенизации и определения слов.

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

1 Ответ

8 голосов
/ 02 мая 2009

Лучший способ - использовать DisMaxRequestHandler . Он соответствующим образом проанализирует каждое поле для соответствующего языка (как определено в schema.xml).

Итак, если ваш запрос выглядит / Solr / выбрать? Кварты = dismax и QF = ан-текст% 20fr-текст% 20de-текст и д = привет% мирового Solr поступит правильно.

(при условии, что вы настроили dismax как solr.DisMaxRequestHandler в блоке requestHandler в solrconfig.xml)

Большая часть анализа выполняется быстро. Ограничения производительности в основном зависят от размера индекса, общего количества сроков и т. Д. Обязательно настройте все в соответствии с руководством по производительности solr на их вики. В настоящее время я использую индекс 60 ГБ и продолжаю получать запросы в диапазоне менее 100 мс на оборудовании, которое не так уж и сложно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...