Solr: Boost by string field
Как я могу повысить запрос по строковому полю? Я нашел только ресурсы, объясняющие повышение даты.
Например, эти документы должны быть увеличены в следующем порядке:
- Приоритет = а
- Приоритет = Ь
- Приоритет = с
Я знаю, что могу отсортировать по приоритету, но хочу совместить это поле с механизмами решаемой релевантности.
2 ответа
Решение
Решением является функция повышения с использованием rord ()
bf=rord(priority)^10
rord отображает строку в целое число, которое затем может быть использовано для повышения.
Если вы хотите применить пользовательские веса для каждого значения; то есть сказать, что b
в два раза важнее, чем a
или что ваши приоритеты не обязательно упорядочены (т.е. c
должно быть увеличено больше, чем b
, но не более чем a
), вы можете добавить буст-запрос с каждым весом:
bq=priority:a^10 priority:b^2 priority:c^5