Elasticsearch过滤器0点击

时间:2018-07-13 14:39:52

标签: elasticsearch filter

我正在尝试在Elasticsearch 6.2.4中使用过滤器上下文,但获得了0次点击。

查询:

{
  "query": {
    "bool": {
      "must": {
        "multi_match": {
          "query": "test",
          "fields": ["title", "labels.*", "type"]
        }
      },
      "filter": {
        "term": {
          "labels.type": "PTR"
        }
      }
    }
  }
}

没有过滤器上下文的同一查询将返回我期望的结果。这是其中之一:

{
  "_index": "events",
  "_type": "event",
  "_id": "5b4853759a04ac31cc3e49ea",
  "_score": 5.3941264,
  "_source": {
    "source": "source1",
    "title": "title1",
    "creation_date": "2018-07-13T07:23:33.983Z",
    "event_date": "2018-07-09T07:53:55.000Z",
    "labels": {
      "tags": "tag1",
      "status": "confirmed",
      "type": "PTR"
    }
  }
}

我尝试将“ labels.status”:“已确认” 更改为“ _ source.labels.status”:“已确认”

为什么此功能适用于状态,但不适用于类型

编辑:此搜索适用于“查询”:“测试” ,因为“测试” “ labels.description” 的一部分字段(一个很长的字符串),我省略了。

1 个答案:

答案 0 :(得分:0)

您如何获得结果?您甚至没有在提及的任何字段“测试” 中:[“标题”,“标签。*”,“类型”] ?< / p>

对于您的过滤器上下文,请使用以下命令:

"filter": {
    "term": {
      "labels.type.keyword": "PTR"
    }
  }