Elasticsearch更新文档而不创建新索引

时间:2019-09-03 09:49:40

标签: java elasticsearch elasticsearch-rest-client

我有许多按日期划分的现有索引。例如: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不创建新索引。

1 个答案:

答案 0 :(得分:1)

通过将false设置为群集的action.auto_create_index设置,可以阻止自动创建不存在的索引的选项

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

有关详细信息,请查看reference