Существует также третий вариант, где вы используете общий набор полей для всех языков, но применяете фильтр к полю language
.Например, если у вас есть поля text
, language
, вы можете поместить текстовое содержимое для всех языков в поле text
и использовать, например, fq=language:english
только для получения документов на английском языке.
Недостатком этого подхода является то, что вы не можете использовать специфичные для языка функции, такие как lemmatisation
, stemming
и т. Д.
Определить различные поля схемы для каждого языка, например title_en,title_fr, ... применяя различные фильтры к каждому языку, а затем запрашивая одно из полей заголовков с соответствующим языком.
Этот подход обеспечивает хорошую гибкость, но остерегается большого потребления памяти и сложности, когда присутствует много языков.,Это можно смягчить, используя несколько серверов Solr.
Создание различных ядер Solr для обработки каждого языка и обеспечения правильности запросов нашего приложения к ядру Solr.
Определенно хорошее решение.Но сработает ли для вас отдельное администрирование и небольшие накладные расходы, вероятно, в зависимости от количества языков, которые вы хотите использовать.
Если первый подход не применим, я, вероятно, склонялся бы ко второму, если не желательна масштабируемость ядер.Любой подход хорош, и я думаю, что в основном все сводится к предпочтениям.