Я пытаюсь создать запрос, который возвращает лучший продукт в зависимости от нескольких обязательных атрибутов и нескольких необязательных, которые влияют только на весовые.Использование SOLR как вернуть лучший результат для набора целочисленных предпочтений
Свойства 1-3 требуется
Свойства 4-5 необязательных
рейтинги1-3 опциональный
Данные структурированы в Solr дб так:
property1 (string)
property2 (string)
property3 (string)
property4 (string)
property5 (string)
rating1 (int)
rating2 (int)
rating3 (int)
В запрос, который я создал до сих пор, закрыл меня, но он не учитывает, насколько закрыты необязательные поля для конкретного запрашиваемого значения.
Примером являются оценки, оцененные 1-5 для любых свойств, таких как эффективность или полезность. Мне нужно, чтобы он признал, что если пользователь хочет, чтобы рейтинг1 был установлен в 4, значения 3 и 5 все еще действительны, как раз и меньше. Также значение 2 взвешивается больше, чем 1. Таким образом, он в основном создает шкалу, основанную на том, как далеко продукт находится от желаемого значения рейтинга.
defType = dismax
sort = score desc
fl = entity_id,score,property4,property5,rating1,rating2,rating3
fq = property1:215 property2:45 property3:17
bq = property4:(H)^5 OR property5:(87)^5 OR rating1:(1)^5 OR rating2:(3)^5 OR rating3:(5)^5