深入了解ElasticSearch的Nested数据类型
在ElasticSearch中,Nested类型的数据允许你索引对象数组,并且能够对这些数组中的每个元素进行独立的查询。
以下是一个创建ElasticSearch索引并使用Nested类型的例子:
PUT /my_index
{
"mappings": {
"properties": {
"nested_field": {
"type": "nested"
}
}
}
}
接下来,我们可以在nested_field
字段中索引一些数据:
POST /my_index/_doc/1
{
"nested_field": [
{
"name": "John",
"age": 30
},
{
"name": "Jane",
"age": 25
}
]
}
要查询嵌套字段中的特定元素,我们可以使用嵌套查询:
POST /my_index/_search
{
"query": {
"nested": {
"path": "nested_field",
"query": {
"bool": {
"must": [
{
"match": {
"nested_field.name": "John"
}
},
{
"match": {
"nested_field.age": 30
}
}
]
}
}
}
}
}
这个查询会找到所有在nested_field
中name
字段为"John"并且age
字段为30的文档。
评论已关闭