如何使用索引别名更新文档

use*_*992 7 elasticsearch

我创建了一个索引"index-000001",主分片= 5,副本= 1.我创建了两个别名

  1. alias-read - > index-000001
  2. alias-write - > index-000001

用于索引和搜索目的.当alias-write达到其最大容量时进行翻转时,它会创建一个新的"index-000002"并将别名更新为

  1. alias-read - > index-000001和index-000002
  2. alias-write - > index-000002

如何更新/删除index-000001中存在的文档(如果我知道的是文档ID而不是文档所在的索引,那该怎么办?)

谢谢

Mar*_*hya 5

无法直接使用索引别名进行更新,最佳解决方案是使用文档 ID 或术语进行搜索查询并获取所需的索引。使用索引您可以直接更新文档。

GET alias-read/{type}/{doc_id}如果 doc_id 已知,将获得所需的文档。

如果 doc_id 未知,则使用唯一的 id 引用查找它

GET alias-read/_search
{
   "term" : { "field" : "value" }
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,您都会收到一份文档作为响应。

获取文档后,您可以使用“_index”字段来获取所需的索引。

PUT {index_name}/{type}/{id} {
    "required_field" : "new_value"
}
Run Code Online (Sandbox Code Playgroud)

更新文档。