Lucene Queries - объединение документов и поддержание актуальности - PullRequest
0 голосов
/ 16 февраля 2011

Я пытаюсь создать поиск Lucene, используя название школы и имя игрока для возврата видео. Я пытаюсь сделать выбор между двумя методами.

Метод A состоит в том, чтобы индексировать название школы и имя игрока в видеодокументе и использовать логический запрос для поиска в этих полях.

Метод B - создание отдельных типов документов и выполнение 3 уникальных запросов.

Документы:

  • школьный документ - хранит school_id и индексирует название школы
  • документ игрока - хранит school_id и sport_id, а также индексы имя игрока

3 запроса:

  1. Поиск всех школьных документов с названием школы
  2. Поиск всех документов игрока с именем игрока
  3. Поиск видео по всему контенту с school_id и sport_id по первым двум запросам.

Каковы плюсы / минусы обоих методов?

1 Ответ

3 голосов
/ 16 февраля 2011

Вы почти наверняка захотите использовать метод A. Чтобы объединить оценки релевантности по двум индексам, вам, по сути, нужно заново изобрести Lucene.

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

Имейте в виду, что Lucene действительно хорош, только если у вас есть много свободного текста для поиска.Если это всего лишь несколько слов (например, название школы), используя возможности произвольного текста MySQL или других ваших любимых rdbms, вероятно, будет так же быстро, и их будет намного проще реализовать.Например, у вас не будет проблем с переиндексацией при переименовании.

...