Solr fq没有消除结果

时间:2015-11-06 18:17:52

标签: solr

我发出以下查询:

  "responseHeader": {
    "status": 0,
    "QTime": 1,
    "params": {
      "q": "(test)",
      "defType": "edismax",
      "indent": "true",
      "fl": "distributor_status,QOH_estimate,id,score",
      "start": "0",
      "sort": "score desc,id desc",
      "fq": "(QOH_estimate:[1 TO *])+OR+(distributor_status:stock)+OR+(*:* -distributor_status:VENDORDISC)",
      "rows": "10",
      "wt": "json",
      "_": "1446833368873"
    }
  }

我将收到以下文件:

  {  "id": "5445a000e4b0fb20ffca4aba",
    "QOH_estimate": 0,
    "distributor_status": "VENDORDISC",
    "score": 4.48295
  }

该文件如何通过fq?

它的QOH_estimate是0,所以它没有通过QOH_estimate:[1 TO *]。它的distributor_status是VENDORDISC,所以它失败了distribotor_status:stock。它的distributor_status是VENDORDISC,所以我也希望它也会失败(*:* -distributor_status:VENDORDISC)。由于它取消了析取查询的所有3个部分,我希望它被消除,但它没有被消除。为什么呢?

1 个答案:

答案 0 :(得分:1)

我认为这些子句之间的空格是双重逃逸的。否则,当其他空格正常时,你在该输出中有+ OR +。

如果这没有帮助,请尝试添加调试标志,并查看如何将所有内容解析为Lucene级别。这应该暗示最终的扩张。