Lucene.NET: запрос или фильтр? - PullRequest
1 голос
/ 29 октября 2010

Насколько я понимаю, документы обнаруживаются на основе запроса, а затем этот результат фильтруется фильтром.

Запрос - это единственное, что влияет на оценку / релевантность документа.

Будут ли какие-либо улучшения производительности (кэширование), если я буду запрашивать результаты, которые имеют отношение к релевантности, и фильтровать элементы, которые не имеют?

Вот моя ситуация. У меня много товаров, и на сайте часто будут искать товары по категориям или производителям. Я думал об использовании запросов для этого, поскольку это приведет к сокращению продуктов до меньшего подмножества, которое можно кэшировать. Затем я могу отфильтровать результаты по спецификациям продукта. Должен ли я использовать фильтры для спецификаций? Таким образом, мы можем фильтровать на основе уже кэшированного (по lucene) подмножества продуктов (категории или производителя).

Ответы [ 3 ]

1 голос
/ 13 сентября 2012

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

  • Категория: Электрика
  • Условия запроса: DSLR Camera

Результирующие оценки (релевантность) основаны на условиях запроса, отличных от попадания в категорию

0 голосов
/ 02 ноября 2010

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

0 голосов
/ 29 октября 2010

Разница между filter и query в основном в том, что filter является точным.Если вы выберете brand=..., вы получите только этот точный бренд.Если вы сделаете запрос по нему, вы получите марку и, возможно, другие результаты, которые также соответствуют вашему запросу.

Итак, вопрос в том, хотите ли вы точный фильтр, или это просто для релевантности?

...