Elasticsearch术语过滤器引发"过滤器不支持[mediatest]"

gwe*_*ang 12 dsl json elasticsearch

我的查询是这样的:

{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "online": 1
              }
            },
            {
              "terms": {
                "mediaType": "flash"
              }
            }
          ]
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

它引发了一个QueryParsingException [[comos_v2] [terms]过滤器不支持[mediaType]],其中"mediaType"字段在映射中确实不存在.我的问题是为什么术语过滤器不会引发异常?

kee*_*ety 24

以上不是有效的查询DSL.在上面的条款中,过滤 "mediaType"字段的值应该是一个数组

它应该是以下内容:

{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "online": 1
              }
            },
            {
              "terms": {
                "mediaType": ["flash"]
              }
            }
          ]
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)