json - 在 Elasticsearch 中删除/添加嵌套对象

标签 json elasticsearch kibana

我在 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/

相关文章:

elasticsearch - 基数奇怪的结果,x5的好结果

elasticsearch - 如果实体索引是基于时间的,如何使用ElasticsearchEntityMapper?

elasticsearch - 如何在索引期间复制id字段(elasticsearch)

elasticsearch - 从 kibana 中的字符串中提取值

java - 以下响应的格式?

java - 如何在 Java 中访问 JSON 数据的嵌套元素?

javascript - 如何从嵌套的 JSON Array 对象中获取具有最大值的元素

javascript - CSV 到多级/嵌套 JSON

macos - 无法在Kibana上安装样本数据集-禁止的错误

elasticsearch - Kibana中的脚本字段错误