如何查询特定的 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"
}
}
}
}
}
我构建了以下 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"
}
}
}
}
}