ES必须匹配过滤器

时间:2016-09-08 10:55:47

标签: elasticsearch

我有这个相当简单的es查询和过滤器,使用ES 2.3.5:

{
   "query": {
      "multi_match": {
         "query": "image",
         "fields": [
            "ToRecipients"
            "From",
            "Subject"
         ]
      }
   },
   "filter": {
      "bool": {
         "must": [
            {
               "match": {
                  "ToRecipients": "johndoe"
               }
            }
         ]
      }
   },
   "sort": [
      {
         "DateTimeSent": {
            "order": "desc"
         }
      }
   ]
}

由于某种原因,它不会被ToRecipients字段过滤。返回的结果不仅包含johndoe字段的各种值。

我哪里出错?

1 个答案:

答案 0 :(得分:0)

请尝试此查询:

{
  "query": {
    "bool": {
      "must": [
        {
          "multi_match": {
            "query": "image",
            "fields": [
              "ToRecipients",
              "From",
              "Subject"
            ]
          }
        }
      ],
      "filter": {
        "bool": {
          "must": [
            {
              "match": {
                "ToRecipients": "johndoe"
              }
            }
          ]
        }
      }
    }
  },
  "sort": [
    {
      "DateTimeSent": {
        "order": "desc"
      }
    }
  ]
}