tkj*_*kja 5 json elasticsearch kibana
我在Elastic 手册中找不到关于嵌套对象的示例,说明如何在 Kibana Sense 中使用 RESTful 命令修改文档的字段和嵌套对象。我在这里寻找类似于 Solrs原子更新的东西,它允许更新文档的特定字段。
Kibana Sense 中的 RESTful 命令如何实现这一点?我能找到的手册中唯一相关信息是Partial Updates to Documents,但我不知道如何将其应用于此用例。
例如,直接来自Elastic 文档:
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"user": {
"type": "nested"
}
}
}
}
}
PUT my_index/my_type/1
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Smith"
},
{
"first" : "Alice",
"last" : "White"
}
]
}
Run Code Online (Sandbox Code Playgroud)
如何删除嵌套对象中的条目,使文档“1”看起来像:
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Smith"
}
]
}
Run Code Online (Sandbox Code Playgroud)
如何在嵌套对象中添加条目,使文档“1”看起来像:
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Smith"
},
{
"first" : "Alice",
"last" : "White"
},
{
"first" : "Peter",
"last" : "Parker"
}
]
}
Run Code Online (Sandbox Code Playgroud)
除非我误解了你的要求,否则你每次只需将更新的文档版本发布到同一个文档 ID 即可。
要删除嵌套文档(或任何字段):
PUT my_index/my_type/1
{
"group" : "fans",
"user" : [
{
"first" : "Alice",
"last" : "White"
}
]
}
Run Code Online (Sandbox Code Playgroud)
要添加用户,请将其添加到列表中:
PUT my_index/my_type/1
{
"group" : "fans",
"user" : [
{
"first" : "Alice",
"last" : "White"
},
{
"first" : "Peter",
"last" : "Parker"
}
]
}
Run Code Online (Sandbox Code Playgroud)
注意:elasticsearch 中的文档是不可变的。对单个字段进行更改会导致整个文档重新索引。嵌套文档始终会使用父文档重新索引,因此如果您更改父文档中的字段,嵌套文档也会重新索引。如果嵌套文档很大并且父文档经常更改,这可能会成为性能问题。
| 归档时间: |
|
| 查看次数: |
4204 次 |
| 最近记录: |