【问题标题】:ES 7 - Use match query with filtersES 7 - 使用匹配查询和过滤器
【发布时间】:2020-02-03 22:47:59
【问题描述】:

我使用 ElasticSearch 7.0,我有这个简单的查询:

"bool": {
    "must": {
        "match": {
            "title": {
                "query": "engineer"
            }
        }
    },
    "filter": {
        "0": {
            "term": {
                "type_id": 1
            }
        },
        "term": {
            "active": 1
        }
    }
}

我得到了这个错误:

[match] 格式错误的查询,应为 [END_OBJECT],但找到了 [FIELD_NAME]

我试过了:

"must": {
    "match": {
        "title": "engineer"
    }
},

但同样的错误,我在这里看不到我的语法错误?我有相同的查询与具有相同过滤器的多重匹配。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    您的过滤器必须包含在一个数组中,如下所示:

    {
      "bool": {
        "must": {
          "match": {
            "title": {
              "query": "engineer"
            }
          }
        },
        "filter": [
          {
            "term": {
              "type_id": 1
            }
          },
          {
            "term": {
              "active": 1
            }
          }
        ]
      }
    }
    

    【讨论】:

    • 该死,我在看比赛部分。谢谢,很抱歉这个简单的问题
    • 不用担心,很高兴它有帮助!
    猜你喜欢
    • 2021-06-06
    • 2019-01-22
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    相关资源
    最近更新 更多