我正在对一大群猫进行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
我不在乎眼睛的颜色或杂散状态,除非既是绿色的眼睛又是杂散的。
此排序参数有效,但缺少“ stray”标志:
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
我真的迷失在这里,不确定我是否使用了错误的排序,或者我是否对语法有误解。
错误消息: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'
答案 0 :(得分:0)
我为我的案件弄清楚了,如果需要的话,这是一个巢:
if(exists(query({!v=eyes:"Green"})),if(exists(query({!v=stray:1})),1,0),0)+desc,
我可能正在使用过时的solr版本,这可能就是@MatsLindh答案对我不起作用的原因