【问题标题】:Elasticsearch update document without creating new indexElasticsearch 更新文档而不创建新索引
【发布时间】:2019-09-03 18:05:35
【问题描述】:

我有许多按日期划分的现有索引。例如:index_190901, index_190902,...

我有一个 API,它接受 index_namedoc_id 作为输入。用户想通过输入fieldsindex_namedoc_id来更新索引中的一些文档。

我正在尝试使用以下代码更新文档:

        updateRequest.index("invalid_daily_index")
          .type("type")
          .id("id")
          .doc(jsonMap)

如果用户输入现有索引,它可以正常工作,但如果用户输入不存在的索引,则会创建没有文档的新索引。

我知道我可以设置auto_create_index,但我仍然想在插入新文档时自动创建索引。

使用client.indices.exists(request, RequestOptions.DEFAULT) 检查索引是否存在是相当昂贵的。我不想在每个请求都检查它

当我使用updateRequest 时,如何让 Elasticsearch 不创建新索引。

【问题讨论】:

    标签: java elasticsearch elasticsearch-rest-client


    【解决方案1】:

    您可以通过将false 放入集群的action.auto_create_index 设置来阻止自动创建非现有索引的选项

    PUT _cluster/settings
    {
        "persistent" : { "action.auto_create_index” : "false" }
    }
    

    详情请看reference

    【讨论】:

    • 但是我想在插入时自动创建索引
    猜你喜欢
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 2016-04-06
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多