一尘不染

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

elasticsearch

我的查询是这样的:

{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "online": 1
              }
            },
            {
              "terms": {
                "mediaType": "flash"
              }
            }
          ]
        }
      }
    }
  }
}

它会引发QueryParsingException [[comos_v2] [条件]过滤器不支持[mediaType]] ,而映射中不存在“
mediaType”字段。我的问题是为什么术语过滤器不引发异常?


阅读 218

收藏
2020-06-22

共1个答案

一尘不染

以上不是有效的查询DSL。在上述条款过滤器中,“ mediaType”字段的值应为数组

应该是以下内容:

{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "online": 1
              }
            },
            {
              "terms": {
                "mediaType": ["flash"]
              }
            }
          ]
        }
      }
    }
  }
}
2020-06-22