Solr - релевантность на основе диапазона + вне диапазона - PullRequest
1 голос
/ 28 февраля 2012

В моем запросе я хочу найти цену, основанную на диапазоне значений (например, от 500 до 1000 долларов), и вернуть нечеткий набор результатов.

Я могу повысить эти значения, сделав цену: [500–1000] ^ 10, но тогда она не оценивается в 499 долларов, как более значимые, чем 200 долларов.

Я могу создать функцию повышения, например: rece (abs (sub (цена, 750)), 1,1000,1000) ^ 10, но это значение 501 как более актуальное, чем 500.

Есть ли какой-нибудь способ иметь одну функцию повышения для $ 500-1000 и другую функцию повышения для значений вне этого диапазона?

Спасибо, Дрю

Отредактировано для опечатки вфункция

1 Ответ

2 голосов
/ 28 февраля 2012

recip(abs(sub(price,750)),1,1000,1000)^10

Используйте среднюю точку вашего диапазона вместо нижней границы.


Редактировать: Чтобы ответить на обновленный вопрос:

Взгляните на функцию map здесь - вы можете сопоставить все цены между 500 и 1000 до 750, а затем использовать ее для повышения. Что-то вроде: recip(abs(sub(map(price,500,1000,750),750)),1,1000,1000)^10

Это должно равняться 600 и 700, но 400 будет выше, чем 300.

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