即使没有为solrQuery找到单个结果,也显示面结果

时间:2019-07-17 06:26:25

标签: solr

我正在使用Solr 8.0.0,并且在使用排除标记时遇到了问题

我的Solr查询如下:

http://localhost:8984/solr/HappyDemo202/select?q=*:*&
rows=6&
start=0&
wt=json&
fq={!tag=CATFACET}cat:((desktops))&
fq={!tag=TAGFACET}tag:((cool))&
fq={!tag=Price}Price:[1200 TO 1245]&
json.facet={CatFacet:{type:terms,field:cat,domain:{excludeTags:CATFACET},limit:-1,sort:{count:desc}},TagsFacet:{ type:terms,field:tag,domain:{excludeTags:TAGFACET},limit:-1,sort:{count:desc}}}

查询输出如下:

{   "responseHeader": {
    "status": 0,
    "QTime": 0,
    "params": {
      "q": "*:*",
      "json.facet": "{CatFacet:{type:terms,field:cat,domain:{excludeTags:CATFACET},limit:-1,sort:{count:desc}},TagsFacet:{ type:terms,field:tag,domain:{excludeTags:TAGFACET},limit:-1,sort:{count:desc}}}",
      "start": "0",
      "fq": [
        "{!tag=CATFACET}cat:((desktops))",
        "{!tag=TAGFACET}tag:((cool))",
        "{!tag=Price}Price:[1200 TO 1245]"
      ],
      "rows": "6",
      "wt": "json"
    }  
    },   "response": {
    "numFound": 0,
    "start": 0,
    "docs": []   },   
 "facets": {
    "count": 0,
    "CatFacet": {
      "buckets": []
    },
    "TagsFacet": {
      "buckets": [
        {
          "val": "new",
          "count": 1
        },
        {
          "val": "new1",
          "count": 1
        }
      ]
    }   } }

当您检查Query的输出时,CatFacet不会显示任何构面结果,因为numFound为0,但是TagsFacet却显示了两个构面结果,例如new&new1。我不知道出了什么问题,如果numFound为0,tagFacet一定不能显示两个方面的结果。

请问出什么问题了吗?任何帮助都将是可贵的。

1 个答案:

答案 0 :(得分:0)

您明确要求将标签构面({excludeTags:TAGFACET})中的标签排除在外-这意味着,如果那里没有该FQ,将会有结果-而您正在询问没有该字段的计数。

如果您希望构面仅计算要返回的文档,请为应该只返回结果集中包含的文档的所有构面删除excludeTags值。