【ES】--Elasticsearch的Nested类型介绍
在Elasticsearch中,nested
类型是一种特殊的对象数据类型,它允许你在一个对象数组中索引嵌套的JSON对象,并且能够对这些嵌套对象进行独立的查询。
当你有一组嵌套对象,并且希望每个对象都是一个独立的文档,可以使用nested
类型。nested
类型的主要特点是它会保持对象之间的关系,让你可以在嵌套的对象上执行复杂的查询。
下面是一个创建包含nested
类型字段的Elasticsearch映射(mapping)的例子:
PUT /my_index
{
"mappings": {
"properties": {
"nested_field": {
"type": "nested"
}
}
}
}
在这个映射中,nested_field
是一个nested
类型的字段,它可以包含一组嵌套的对象。
以下是如何索引一个包含nested
类型字段的文档的例子:
POST /my_index/_doc/1
{
"nested_field": [
{
"name": "John",
"age": 30
},
{
"name": "Jane",
"age": 25
}
]
}
要查询嵌套字段中的特定对象,你需要使用nested
查询:
POST /my_index/_search
{
"query": {
"nested": {
"path": "nested_field",
"query": {
"match": {
"nested_field.name": "John"
}
}
}
}
}
这个查询会搜索nested_field
中name
字段为"John"的所有嵌套对象。
评论已关闭