【问题标题】:Add _id to the source as a separate field to all exist docs in index将 _id 添加到源中作为索引中所有现有文档的单独字段
【发布时间】:2021-05-11 23:55:05
【问题描述】:

我是弹性搜索的新手。我需要浏览所有文件,将_id 添加到_source 作为脚本的单独字段。可能吗?如果是,我可以提供类似的示例或类似 脚本 的链接吗?我在码头上没见过这样的东西。为什么我需要它? - 因为在那之后我将使用 Opendistro 和 SQL 进行 SELECT。此框架无法返回我不在源中的字段。如果有人能提出建议,我将不胜感激。

【问题讨论】:

    标签: elasticsearch elasticsearch-opendistro


    【解决方案1】:

    有两种选择:

    第一个选项:在现有索引中添加这个新字段并填充它并再次构建新索引。

    第二个选项:只需在新的索引映射中定义一个新字段(保持所有字段相同),然后在下面的脚本中使用reindex API

     "script": {
            "source": "ctx._source.<your-field-name> = ctx._id"
        }
    

    【讨论】:

    • POST index/_doc/_update_by_query { "query": { "match_all": {} }, "script": { "source": "ctx._source.docId = ctx._id" } } 正是我需要的,谢谢!
    猜你喜欢
    • 2020-07-04
    • 1970-01-01
    • 2013-10-26
    • 2018-12-22
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    相关资源
    最近更新 更多