Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于两个带AND的字段的Solr排序项_Solr - Fatal编程技术网

基于两个带AND的字段的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

我正在对一大群猫运行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"}))) 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