Поиск на основе изменения значения в Solr - PullRequest
0 голосов
/ 03 января 2012

Представьте, что вы создаете веб-сайт, который, помимо прочего, позволяет людям искать арендуемые автомобили по цене.Некоторые прокатные автомобили более популярны в определенные времена года, чем другие, поэтому их цена варьируется в зависимости от даты.Например, большую часть года автомобиль может стоить 90 долларов в день, за исключением декабря и марта, когда он стоит 110 долларов в день, а в январе и феврале - 130 долларов в день.Возможно ли иметь рассчитанное поле в Solr, чтобы вы могли искать автомобиль, который стоит менее $ X / день в течение срока аренды?Я новичок в Solr, поэтому абсолютно не знаю, возможно ли это или нет - извините, если я задаю тупой вопрос.

Одна возможность, с которой я столкнулся, - это один раз проиндексировать элементдля каждой цены, и иметь даты начала и окончания для каждого из них.Это справляется с изменениями цен, но не работает для арендных плат, которые пересекают ценовые границы;например, клиент может захотеть арендовать автомобиль на одну неделю в феврале и две недели в марте - в этом случае мы не найдем машину.

Я использую Solr 3.5.Можно ли сделать это с помощью FunctionQuery?Я видел некоторую документацию по ним, но все примеры, которые я видел, используют их для возврата вычисленного значения, а не выполняют поиск по этому вычисленному значению.Если я не могу сделать это с помощью FunctionQuery, как я могу это сделать?

1 Ответ

1 голос
/ 04 января 2012

Я думаю, что это возможно:

В вашем индексе вы можете иметь разные типы столбцов, содержащих разные цены разных сезонов.В вашем запросе вам нужно использовать продукт по цене в течение определенного сезона против количества дней в этом сезоне и суммировать его с продуктом по цене в течение другого сезона с количеством дней в этом сезоне.Да, вам придется использовать FunctionQuery.Средство определения количества дней в году, которое вам, вероятно, придется выполнять на клиенте, вызывающем веб-службу solr.Кроме того, вы можете попытаться применить фильтр фильтра к результату, чтобы выбрать сумму, которую пользователь готов заплатить.

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