Solr Boost-функция по продажам - PullRequest
0 голосов
/ 29 мая 2019

Я использую 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 теперь возвращает документы, которые не имеют ничего общего с моим "Coffee" -Query, но только соответствуют функции boost. Есть даже результаты со счетом «0». Э.Г.

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

Есть идеи, чтобы избавиться от этих "только буст-функций" -матчей?

1 Ответ

1 голос
/ 29 мая 2019

Найден ответ!

Мои поля запросов фактически включали улучшения, такие как

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

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

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

...