Ведение статистики запросов с использованием Lucene - PullRequest
8 голосов
/ 25 ноября 2010

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

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

Но я не могу понять, в какой форме индексировать данные. Я думал о простом добавлении запросов в индекс, но в этом случае может быть много избыточных данных, поскольку многие документы в индексе будут иметь одинаковое содержимое. У кого-нибудь есть идеи о том, как это можно сделать?

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 26 ноября 2010

Во-первых, я считаю, что вы должны хранить запросы отдельно от существующего индекса. Проблема заключается не в избыточных данных, а в том, чтобы «опустошить» ваш индекс - хранение запросов в одном индексе может повредить релевантности ваших запросов. Некоторые варианты для этого:

  • Используйте отдельный индекс Lucene.
  • Используйте Solr , с двумя отдельными ядрами , одним для документов и другим для запросов.
  • Использовать журнал запросов. Храните оценки с запросами. Построение статистики запросов с помощью постобработки. Поскольку это веб-приложение, вы, вероятно, можете использовать для этого контейнер сервлетов, например Tomcat, *. 1012 *

Второе, Автоматическое предложение из популярных запросов с использованием EdgeNGrams предлагает альтернативную реализацию предложения запроса с использованием Solr.

1 голос
/ 25 ноября 2010

«Я думал просто добавить запросы в индекс, но таким образом может быть много избыточных данных, так как многие документы в индексе будут иметь одинаковое содержимое»

Вы можете указать Lucene не хранить содержимое документа, что означает, что основными накладными расходами будут уникальные условия и сам индекс. Таким образом, хранение каждого запроса в качестве уникального документа может не потребовать больших затрат. Таким образом, вы не будете выбрасывать какую-либо информацию.

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