Поиск Solr, числовое сопоставление и релевантность - PullRequest
1 голос
/ 20 января 2010

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

Есть ли способ сделать это в Solr? Актуальность / MoreLikeЭто документы, которые я видел на сайте, похоже, не имеет никакого понятия об отклонении от заданного числа.

Смежный вопрос. Я бы хотел изменить вес моего поискового запроса для достижения этих двух запросов:

«Найти камеры с одинаковыми ценами» а также «Найти похожие камеры»

Глядя на более похожий на этот обработчик алгоритм, используемый для вычисления релевантности, не похоже, что он предоставляет какие-либо ручки управления программисту. Например, для камер с одинаковой ценой я хотел бы изменить показатель релевантности, чтобы мы увеличивали релевантность товаров в той же ценовой категории, но при этом сохраняли вес для функций. Для подобного признака это будет полностью изменено. IE «находит аналогичные камеры, но если одна стоит сорок тысяч долларов, это менее актуально, чем аналогичная камера по моей выбранной цене» (она должна иметь больше функций, но, возможно, они просто надевают хромированные блесны на крышку объектива). *

1 Ответ

3 голосов
/ 20 января 2010

В Solr Wiki вы увидите несколько примеров того, как вы можете искать по диапазону , используя синтаксис field:[a TO b].

Вы хотели бы соединить это с сортировкой. Вы также можете создать Solr SearchComponent , который может указывать вес для диапазона цен, или RequestHandler . Обработчик запросов - это то, с чем я был более знаком. Примером поля 'qf' может быть:

<str name="qf">
    productname^1.0 price^2.0 brand^0.5
</str>

Надеюсь, это поможет вам начать.

...