Как проиндексировать форумы для поиска? - PullRequest
2 голосов
/ 21 сентября 2010

Для дискуссионного форума лучше ли индексировать каждую запись в обсуждении как отдельный документ lucene или просто объединять все записи в обсуждении в один большой блок текста и индексировать всю дискуссию как один документ lucene

Ответы [ 4 ]

1 голос
/ 21 сентября 2010

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

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

Объединение всех записей не является хорошей идеей, если вы хотите указать пользователю точную запись интереса.Что касается вашего беспокойства (прокомментируйте ответ Райана) о возврате нескольких записей из одного потока, вы можете добавить идентификатор потока к каждой записи во время индексации.Затем во время отображения результатов вы можете отобразить только запись для каждого идентификатора потока (запись с наибольшим количеством баллов может отображаться вместе с темой темы)

0 голосов
/ 21 сентября 2010

Я предпочитаю индексировать каждую запись отдельно.Это сделает дизайн более гибким, так как ваша система должна иметь некий тематический объект для группировки записей в одном потоке.И еще одна проблема для индексации с помощью конкатенации - это необходимость повторной индексации после публикации новой записи, которая влияет на производительность.

0 голосов
/ 21 сентября 2010

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

http://www.lucidimagination.com/blog/2010/09/16/2446/

0 голосов
/ 21 сентября 2010

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

Lucene должен иметь возможность быстро индексировать и искать каждую запись (сообщение / тема/без разницы).Объединение их всех вместе кажется излишним.

...