基于两个带AND的字段的Solr排序项
我正在对一大群猫运行solr查询。猫有四个相关属性:基于两个带AND的字段的Solr排序项,solr,Solr,我正在对一大群猫运行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, 9
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"}))) AND
(exists(query({!v=stray:1}))),1,0)+desc,
relevancy+desc,
age+desc
我在这里真的很迷茫,不确定我是否使用了sort错误,或者我是否误解了语法
错误消息:
无法确定排序规范中的排序顺序(asc或desc)如果((存在(查询({!v=eyes:“Green”}))和存在(查询({!v=trasted:1}))、1,0)desc、相关性desc、年龄desc’
我为我的案例找到了它,如果需要的话,它是一个嵌套:
if(exists(查询({!v=eyes:“Green”})),if(exists(查询({!v=trasted:1})),1,0),0)+desc,
我可能使用的是过时版本的solr,这可能就是@MatsLindh answer对我不起作用的原因请添加错误片段。
{!v=eyes:“Green”和杂散:1}
?在这些情况下,使用参数解引用通常更具可读性:。。。query($qq).&qq=eyes:Green和trassed:1
添加了错误消息@SanGot为{!v=eyes:Green”和trassed:1}
添加了相同的错误消息,正在尝试参数取消引用的第二个建议
if((exists(query({!v=eyes:"Green"}))) AND
(exists(query({!v=stray:1}))),1,0)+desc,
relevancy+desc,
age+desc