假设我有一个数组字段,可能如下所示:
{
"tags": [
{ "type": "A", "name": "something" },
{ "type": "B", "name": "whatever" }
]
}
有没有办法查询带有某个标签的记录
这样我们就可以匹配是否匹配 1 个标签记录或 2 个
我相信使用默认映射这是elasticsearch 的行为。 如果这不起作用,您能否分享索引的映射?您很可能正在使用
nested
以下请求允许我搜索并获取文档 1
PUT /79250167/_doc/1
{
"tags": [
{ "type": "A", "name": "something" },
{ "type": "B", "name": "whatever" }
]
}
GET 79250167/_search
{
"query":{
"bool": {
"should": [
{
"match": {
"tags.type.keyword": "B"
}
},
{
"match":{
"tags.name.keyword": "something"
}
}
]
}
}
}
应该给你文件。