Несколько или один индекс в Lucene? - PullRequest
14 голосов
/ 30 апреля 2010

Я должен проиндексировать различные виды данных (текстовые документы, сообщения на форуме, данные профиля пользователя и т. Д.), Которые должны быть найдены вместе (т. Е. Один поиск будет возвращать результаты данных разных типов).

  • Каковы преимущества и недостатки наличия нескольких индексов, по одному для каждого типа данных?

  • А преимущества и недостатки наличия единого индекса для всех видов данных?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 04 мая 2010

Если вы хотите искать все типы документов одним поиском, лучше сохранить все Типы для одного индекса. В индексе вы можете определить больше типов полей, которые вы хотите Tokenize или Vectore их. Требуется время, чтобы представить каждому IndexSearcher каталог, включающий в себя индексы.

Если вы хотите искать термины отдельно, лучше индексировать каждый тип по одному индексу. один индекс является более структурным, чем несколько индексов.

С другой стороны, мы можем сбалансировать нашу загрузку с несколькими индексами.

2 голосов
/ 30 апреля 2010

Не обязательно отвечать на ваши прямые вопросы, но ...;)

Я бы пошел с одним индексом, добавил бы поле Ключевого слова (индексированное, сохраненное) для типа, оно позволит вам фильтровать при необходимости, а также сообщит разницу между результатами, которые вы получите обратно.

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

1 голос
/ 01 мая 2010

Вы должны логически подумать о том, что содержится в каждом наборе данных, и спроектировать свои индексы по предмету или другим критериям (таким как география, подразделение и т. Д.). Как правило, ваша индексная архитектура похожа на то, как вы работаете с базами данных (вы, вероятно, не объедините учет с базой данных персонала, например, даже если это технически возможно).

Как указывал @llama, создание единого uber-индекса влияет на оценки релевантности, проблемы безопасности / доступа, помимо прочего, и вызывает целый ряд новых головных болей.

В итоге: подумайте о структуре логического разделения в зависимости от потребностей вашего бизнеса. Было бы трудно объяснить без дальнейшего фона.

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