我的elasticsearch中有一个嵌套字段。假设这样的数据存储在这个字段中:
{
"id" : 1,
"students":[
{"name": "John", "age": 20},{"name": "Alexander", "age":25},{"name": "Elizabeth", "age": 15}
]
},
"id" : 2,
"students":[
{"name": "John", "age": 23},{"name": "Thomas", "age":30}
]
}
我怎样才能查询到那些有学生“约翰”和他的“年龄”超过21岁的文件。如果查询工作正常,第一个文档将不会作为答案重新检索,因为“john”已经20岁了,我们正在寻找一个至少21岁的“john”。因此,必须检索第二个文档。谢谢你的帮助。
2条答案
按热度按时间q35jwt9p1#
您需要使用带有源筛选的内部点击的嵌套查询来获得更好格式的预期输出。
另外,请参考内部点击,以便您可以对您的查询和搜索结果进行高级操作。
索引Map,其中包括
.keyword
字段,以便检索文本字段的字段值为有问题的示例文档编制索引,并搜索查询以检索嵌套文档
和内部搜索结果
wxclj1h52#
添加索引Map、搜索查询和搜索结果的工作示例
索引Map:
搜索查询:
搜索结果: