为什么过滤查询的顺序对SOLR

时间:2015-08-12 23:10:19

标签: solr

当我更改fq参数的顺序时,结果会发生变化。为什么呢?

我有两个值为role_allow的文件是“Role2”,只有其中一个文件的名称是“Filename1”。

此查询有效并仅返回1个文档:

{
    query:"querystr" ,
      params:{
        wt:xml,
        fq:"role_allow:Role2",
        fq:"name:Filename1"
        }
}

但这不会,并返回2个文件。

{
    query:"querystr" ,
      params:{
        wt:xml,
        fq:"name:Filename1",
        fq:"role_allow:Role2"
        }
}

如果我使用第二个json对象,SOLR将返回fq:“role_allow:Role2”的所有匹配项,但fq:“name:Filename1”无效。

知道为什么吗?

提前致谢。

1 个答案:

答案 0 :(得分:-1)

使用fq:"name:Filename1 AND role_allow:Role2"进行查询。只有一个值具有相同的键,因此最后一个fq是唯一有效的,第一个将被忽略。使用AND的单个fq,条款的方式无关紧要,两者都很重要。