如何查询特定的 Elasticsearch 类型并获取与关键字匹配的记录?

How to query on a specific Elasticsearch type and fetch records matching a keyword?

我构建了以下 ElasticSearch (POST) 查询以获取符合以下条件的记录: -select 类型:"server" -select 字段:"servername"、"silo"、"packages.displayname"、"packages.displayversion"、"environment"

{
    "size": 10,
    "_source" : ["servername", "silo", "packages.displayname", "packages.displayversion","environment"],
    "query": {
          "type" : {
            "value" : "server"
        }
    }
}

有效!

问题是当我想添加以下条件时: -"packages.displayname" = "Google Chrome"

{
    "size": 10,
    "_source" : ["servername", "silo", "packages.displayname", "packages.displayversion","environment"],
    "query": {
          "type" : {
            "value" : "server"
        },
        "match" : {"packages.displayname" : "Google Chrome"}
    }
}

没用!引发以下错误:

"type": "parsing_exception",
                "reason": "[type] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
                "line": 8,
                "col": 9

我完全是 ElasticSearch 的菜鸟..有人可以帮我弄清楚我应该如何编写查询吗?

谢谢

您必须构建一个 bool 查询:

{
  "query": {
    "bool": {
      "must": {
        "match": {
          "packages.displayname": "Google Chrome"
        }
      },
       "must": {
        "type": {
          "value": "server"
        }
      }
    }
  }
}