Я внедряю Solr на сайте электронной коммерции. Теперь, когда на сайте электронной коммерции поддерживается несколько языков, я просто хотел узнать, как я могу управлять несколькими языками в одном ядре solr? У меня красный о нескольких языках в одном поле. Может ли кто-нибудь предложить, как я могу индексировать и запрашивать несколько языков в одном поле? Любой пример?

Спасибо!

1
Ankita 10 Дек 2014 в 08:01

2 ответа

У вас может быть несколько языков в одном поле. Это, конечно, «повредит» ваши векторы частот и частоту терминов, но если вы запрашиваете, используя запрос фильтра для конкретного языка, скажем, fq: en, тогда частота терминов будет откалибрована только для этого.

В любом случае я бы предложил вам использовать общие поля для всего, что не связано с языком (идентификатор, категория, количество и т. д.), но описание и заголовки, которые вы можете сохранить в своих собственных полях, таких как «description_en», «title_en».

Чтобы узнать о методах, специфичных для языка, вы можете определить специальные языковые анализаторы для оптимизации поиска и эффективности индексации, взгляните на https:/ /wiki.apache.org/solr/LanguageAnalysis.

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

0
rvegas 10 Дек 2014 в 15:14

Эта проблема несколько раз подробно обсуждалась в списке рассылки SolrUser. Простого решения нет, все зависит от компромиссов. Список рассылки не так хорошо виден в Google, как должен быть, но вы можете ищите в специализированном интерфейсе.

Но другие варианты — также отдельно индексировать языки, а затем использовать eDisMax для поиска по всем вариантам. У меня есть пример (из моей книги) на GitHub .

0
Alexandre Rafalovitch 11 Дек 2014 в 04:13