Solr Boost-функция по продажам

Я использую Apache Solr 8 с продуктами в качестве документов. Каждый документ включает продажи за последние X дней, которые я хочу увеличить, а также заголовок и другие поля.

Скажем, продукт А был продан 5 раз, я хочу повысить его на 10 баллов; продукт B был продан 50 раз, я хочу повысить оценку на 30.

Я попытался использовать boostFunction, который выглядит как (анализатор запросов edismax)

q=Coffee&qf=title&bf=if(lt(sales,5),10,if(lt(sales,50),30))

Solr теперь возвращает документы, которые не имеют ничего общего с моим запросом «Кофе», а просто соответствуют функции повышения. Есть даже результаты с оценкой «0». Например.

Rank;Score;Sales;Title
1;58.53;55;Coffee big
2;38.11;50;Coffee
3;30;55;Tea

Любая идея, чтобы избавиться от этих совпадений «только функция повышения»?


person theNick    schedule 29.05.2019    source источник


Ответы (1)


Нашел ответ!

Мои поля запросов на самом деле включали повышение, например

&qf=title^2 longDescription^0 whatever^0...

Вместо исключения результатов, найденных в этих полях с усилением 0, solr добавляет их и сопоставляет с -well score 0.

Когда я убираю 0-бустинг, все работает как задумано.

person theNick    schedule 29.05.2019