Solr Как добавить коэффициент усиления к двойному значению поля - PullRequest
0 голосов
/ 23 марта 2020

Мой сайт электронной коммерции использует solr для индексации продуктов для поиска клиентов. Существует поле solr под названием «sale_revenue_double», описывающее общий доход продукта.

Моя цель состоит в том, чтобы, когда клиент выполняет текст поиска, я хотел, чтобы продукты с более высоким доходом от продажи легко появлялись в верхней части результата. Я не ожидал, что это сортировка solr по этому полю, потому что при использовании сортировки solr для «sale_revenue_double» результаты поиска в основном отображаются в этом порядке сортировки, а не в ожидании текстового поиска. Так что я просто хочу, похоже, добавить небольшой коэффициент повышения к «sale_revenue_double» (или любой другой подобной вещи), чтобы немного поднять продукты с высоким доходом от продажи, а не сильно повлиять на результат из-за других факторов.

Однако, когда я добавил коэффициент усиления для этого поля, необходимо указать значение, например bq = (sale_revenue_double: 200000 ^ 10.0), но в моем случае значение (200000) не имеет смысла, потому что мы не нужно указывать указанный c доход, нам просто важно, чтобы высокий доход в результате немного увеличился. Так что у меня возникли проблемы с этим, и у меня нет решения с этим требованием.

Эксперты, если у кого-то есть какие-либо идеи по решению этой проблемы, пожалуйста, помогите мне.

Заранее большое спасибо .

1 Ответ

0 голосов
/ 24 марта 2020

Вы можете использовать параметр bf или параметр boost (аддитивное или мультипликативное усиление) с функцией для получения необходимого профиля усиления на основе значение в поле.

bf=sqrt(sale_revenue_double) даст вам повышение, соответствующее квадрату root продажи (что заставит его расти намного медленнее). Какой именно профиль вы хотите использовать, будет зависеть от того, насколько сильно вы хотите повлиять на оценку, и насколько различаются эти показатели дохода.

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