我在弹性搜索中有 2 个文档,结构如下:
文件 1:
{
"specification": [
{
"name": "Processor",
"value": "Intel"
},
{
"name": "RAM",
"value": "2GB"
}
]
}
Document 2:
{
"specification": [
{
"name": "Processor",
"value": "Intel"
},
{
"name": "RAM",
"value": "3GB"
}
]
}
我想获取具有值 intel 和 2GB(即)第一个文档的规范的文档。但是当我尝试使用必须(AND 运算符)时,我什么也得不到。如果我使用应该(OR 运算符),我会同时获得这两个文件。谁可以帮我这个事?以下是我的查询..
{
"query": {
"nested": {
"path": "specification",
"query": {
"bool": {
"must": [
{
"bool": {
"must": [
{ "match": { "specification.name": "Processor" }},
{ "match": { "specifications.value": "Intel" }}
]
}
},
{
"bool": {
"must": [
{ "match": { "specification.name": "RAM" }},
{ "match": { "specifications.value": "2GB" }}
]
}
}
]
}
}
}
}
}