Elasticsearch Watcher中格式错误的查询

时间:2018-04-16 14:21:51

标签: elasticsearch elastic-stack

我试图在这种条件下在Elasticsearch中创建一个手表:

  • Field" ht"必须小于100
  • Field" sv"不得" tier1"和field" rv"可以是其他任何东西。
  • Field" sv"不得" tier2"和field" rv"绝不能是"红色"。

这是我的身体搜索,但它返回:

" [期限]格式错误的查询,预计[END_OBJECT]但找到了[FIELD_NAME]":



      "body": {
          "query": {
              "bool": {
                  "must": {
                      "range": {
                          "ht": { "lt": 100 }
                      }
                  },
                  "must_not": [{
                      "term": { "sv": "tier1" },
                      "bool": {
                          "must": [ 
                              { "term": { "sv": "tier2" } },
                              { "term": { "rv": "red" } }
                          ]
                       }
                  }],
                  "filter": {
                      "range": {
                          "timestamp": {
                              "from": "now-10m",
                              "to": "now"
                          }
                      }
                  }
               }
            }
        }




你能帮助我吗?感谢。

1 个答案:

答案 0 :(得分:2)

问题出在must_not部分,您需要使用其他{...}

包围每个约束
              "must_not": [
                  {"term": { "sv": "tier1" }},
                  {"bool": {
                      "must": [ 
                          { "term": { "sv": "tier2" } },
                          { "term": { "rv": "red" } }
                      ]
                   }}
              ],