Solr Boost для незапрошенного термина - PullRequest
4 голосов
/ 01 декабря 2011

Все мои результаты имеют тип "активный, неактивный, исторический" - это поле, проиндексированное Solr.

Я хочу, чтобы мои результаты возвращались с повышением до type = "active" .

Я мог бы сделать заказ, которого будет достаточно, но это не очень хорошо.

Таким образом, когда пользователь ищет термин "больной", он получает наиболее релевантные результаты для больного, но с более высоким приростом для документов, где он активен.

Не просто отсортированный набор результатов!

Ответы [ 2 ]

6 голосов
/ 01 декабря 2011

Вы можете использовать edismax parser и следующий параметр буст-запроса bq, чтобы получить желаемые результаты, которые будут увеличены до вершины ...

 http://localhost:8983/solr/select/?q=sick&defType=edismax&bq=type:active^5.0

В этом примере вы добавляете дополнительный запрос для повышения релевантности документов, тип которых активен.

Вот еще несколько примеров на странице Solr Wiki DisMaxQParserPlugin .

3 голосов
/ 28 января 2014

Приведенный выше пример создаст аддитивный импульс.Если вы хотите мультипликативное усиление для «type = active», вы можете добавить:

&boost=if(termfreq(type,"active"),2,1)

, что дает увеличение коэффициента 2 для «type = active»

...