Вопрос

я использую Lucene.net для индексации контента и документов и т. Д. На веб -сайтах. Индекс очень прост и имеет этот формат:

LuceneId - unique id for Lucene (TypeId + ItemId)
TypeId   - the type of text (eg. page content, product, public doc etc..)
ItemId   - the web page id, document id etc..
Text     - the text indexed
Title    - web page title, document name etc.. to display with the search results

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

  1. Создайте отдельный индекс для каждого языка. Например, Lucene-Engb, Lucene-Frfr и т. Д.
  2. Держите один индекс и добавьте в него дополнительное языковое поле, чтобы отфильтровать результаты.

Какой вариант лучший - или есть другой? Я не использовал несколько индексов раньше, поэтому я склоняюсь ко второму.

Это было полезно?

Решение

Я делаю [2], но одна проблема у меня - то, что я не могу использовать разные анализаторы в зависимости от языка. Я объединил стоп -слова, которые я хочу, но я теряю возможности более продвинутых вещей, которые будет предлагать анализатор, например, Stemming и т. Д.

Другие советы

Вы можете исключить вариант 1 и 2.
Вы можете использовать один индекс и поля, которые содержит арабские слова, создают две поданы для каждого: если у вас есть поле "Текст"Может содержать арабское или английское содержимое ==>

  • Создайте 2 поля для "Текст": 1 поле"Текст«Индексировано/искал с вашим стандартным анализатором и еще одним»,Text_ar"с арабиканализером. Чтобы достичь этого, вы можете использоватьPrefieldanalyzerWrapper
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top