hadoop - Elasticsearch 5.4 更新\添加嵌套文档

标签 hadoop elasticsearch elasticsearch-plugin

{
        "id":100,
        "name":"xxx",
        "others":{
            "hobbies":["cricket","footbal"]
        }}
  1. 如何在爱好中增加新的值(value)(“爱好”:[“板球”,“足球”,“读书”])
  2. 如何在其他字段中添加新字段(例如:位置)
  3. 如何从爱好中去除“蟋蟀”。

最佳答案

您可以根据您的要求使用脚本更新( documentation link )。

  1. 在爱好中增加值(value)的查询

    {
        "script" : {
            "source": "ctx._source.others.hobbies.add(params.hobby)",
            "lang": "painless",
            "params" : {
            "hobby": "reading books"
         }
       }
    }
    


  2. 在他人中添加新字段

    {
        "script": {
            "source": "ctx._source.others.location = 'value_of_new_field'",
            "lang": "painless"
        }
    }
    


  3. 从爱好中删除蟋蟀

    {
        "script" : {
            "source": "int index = ctx._source.others.hobbies.indexOf(params.remove_string); if(index != -1){ctx._source.others.hobbies.remove(index);}",
            "lang": "painless",
            "params" : {
                "remove_string" : "cricket"
            }
        }
    }
    



UPDATE-1 根据下面评论中的要求,添加数组字段的方法。

添加一个数组字段

    {
        "script": {
            "source": "ctx._source.extra.location = []",
            "lang": "painless"
        }
    }

关于hadoop - Elasticsearch 5.4 更新\添加嵌套文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48924943/

相关文章:

php - PHP-Elasticsearch不返回所有结果,例如Kibana

elasticsearch - 如何用 Go 构造 Elasticsearch 查询?

java - hadoop 和 yarn 的 Maven 依赖项

database - 稀疏数据/数据存储/数据库是什么意思?

hadoop - 使用spark Java的序列文件读取问题

search - Elasticsearch 小写过滤搜索

hadoop - 映射任务的输出写入本地文件系统或HDFS?

Spring 数据 Elasticsearch 动态更改 indexName

java - Elasticsearch 按嵌套字段分组

用于对文档进行分类的 Elasticsearch 插件