2013-04-16 3 views
2

Как округлить результат поиска по 2 десятичным знакам?Оценка округления на 2 десятичных знака в сортировке - SOLR 4.2

Могу ли я использовать округленный счет в сортировке?

мне нужно somethink как:

/?q=term&sort=round(score, 2) desc, orders desc 

в Solr версии 4.2

Я хочу, чтобы отсортировать результаты поиска по полю заказы, но я не получил соответствующий результат первого. Я получил несколько тысяч результатов. Итак, я хочу сделать компромисс между полем заказов и оценка.

+0

Какая у вас задание? Оценки имеют значение только по сравнению с другими оценками одного и того же запроса. – phisch

+0

Спасибо. Я редактировал вопрос. – tasmaniski

ответ

4

функции Запросы требуют индексированного поля и score является а не реальное поле, поэтому вы не можете его использовать. Но мне нравится подход femtoRgon. Вот другая версия

Вы можете использовать RINT()/продукта() в сочетании с query()

q=rint(product(query({!v="author:alice"}) ,100))&defType=func&fl=*,score&sort=score desc, author desc 

Substitue Автор: Алиса с вашим запросом. Я не уверен, что такое влияние на производительность, поскольку оно выполняет подзапросы. Вам нужно будет это проверить.

+0

Да, подход femtoRgon очень приятный, но его нельзя применять. – tasmaniski

+0

Мне понравилась комбинация с rint() и product(), так как нет запроса функции round(). Решение query() работает для вас? – phisch

+0

Я использовал функцию query() с помощью rint(), но это не сработало. Теперь с подходом product() работает exelent. Благодаря! – tasmaniski

1

Там нет roundfunction query, что я знаю, но есть rint, которая округляет к междунар, который я считаю, вы могли бы использовать как:

sort=rint(product(score,100)) desc, orders desc 
+0

У меня ошибка: «sort param не может быть проанализирован как запрос ...». Я думаю, что не может использовать счет в сортировке? Вы пытаетесь это сделать? – tasmaniski

0

Вместо использования по умолчанию solr QueryComponent используйте scorePrecisionComponent, который отрубает дополнительную точность и придаст больший вес вашему условию сортировки. Вы можете изменить точность оценки до нужного значения, настроив параметр solr param (scorePrecision).

Смежные вопросы