Я выполняю запрос solr против большой группы кошек. У кошек есть четыре соответствующих атрибута:
Eye color (string)
Stray (1 yes/0 no)
Relevancy (integer 1-99)
Age(integer representing milliseconds).
Я хочу, чтобы мои результаты сортировки были следующими:
- Кошки с зелеными глазами И шальные
- Релевантность
- Возраст
Итак, мои результаты будут выглядеть так:
Green, 1, 50, 300000
Green, 1, 25, 500000
Green, 1, 25, 100000
Blue, 1, 99, 500000
Green, 0, 98, 500000
Red, 1, 98, 400000
Green, 0, 98, 399999
Меня не волнует цвет глаз или бродячий статус, если только это не обазеленые глаза и шальные.
Этот параметр сортировки работает, но отсутствует флаг "отклонения":
if(exists(query({!v=eyes:"Green"})),1,0)+desc,
relevancy+desc,
age+desc
Этот параметр сортировки не работает и выдает ошибку:
if((exists(query({!v=eyes:"Green"}))) AND
(exists(query({!v=stray:1}))),1,0)+desc,
relevancy+desc,
age+desc
IЯ действительно потерян здесь, не уверен, что я использую сортировку неправильно, или я неправильно понимаю синтаксис.
Сообщение об ошибке: Can't determine a Sort Order (asc or desc) in sort spec 'if((exists(query({!v=eyes:"Green"})) AND exists(query({!v=stray:1}))),1,0) desc,relevancy desc,age desc'