我在 Elastic manual on nested objects 中找不到示例关于如何在 Kibana Sense 中使用 RESTful 命令修改文档的字段和嵌套对象。我正在寻找类似于 Solrs 的东西 atomic updates此处允许更新文档的特定字段。
Kibana Sense 中的 RESTful 命令如何实现这一点?我能找到的手册中唯一相关信息是 Partial Updates to Documents ,但我不知道如何将其应用于此用例。
例如,直接来自 Elastic docs :
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"
}
]
}
如何删除嵌套对象中的条目,使文档“1”看起来像:
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Smith"
}
]
}
如何在嵌套对象中添加条目,使文档“1”看起来像:
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Smith"
},
{
"first" : "Alice",
"last" : "White"
},
{
"first" : "Peter",
"last" : "Parker"
}
]
}
最佳答案
除非您想获取所有嵌套对象,然后添加/删除项目并重新索引它们,否则您将不得不使用脚本更新,这是先前提出的答案。但是,如果您有很多嵌套文档,则应该进行部分更新/添加和删除。从数据传输和索引的角度来看,它要快得多。
这是一篇关于如何进行脚本化更新的好文章:
https://iridakos.com/programming/2019/05/02/add-update-delete-elasticsearch-nested-objects
关于json - 在 Elasticsearch 中删除/添加嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39539496/