【问题标题】:Elasticsearch conflict while putting document to index将文档放入索引时发生 Elasticsearch 冲突
【发布时间】:2020-09-30 19:22:56
【问题描述】:

我想创建一个索引并用模板修改它的设置,同时为它创建一个别名

"template_1" : {
    "order" : 0,
    "index_patterns" : [
      "test*"
    ],
    "settings" : {
      "index" : {
        "number_of_shards" : "2",
        "number_of_replicas" : "2"
      }
    },
    "mappings" : { },
    "aliases" : { 
        "some-alias" : { }
    }
  }
} 

当我尝试使用别名放置文档时,它会尝试使用别名创建索引。但是,我正在寻找可以搜索具有此别名的索引并抛出此别名不存在索引的错误

【问题讨论】:

    标签: elasticsearch kibana elastic-stack elasticsearch-dsl aws-elasticsearch


    【解决方案1】:

    问题是您使用单个别名引用多个索引,因此当您 PUT 一个文档时,ES 不知道将其存储到哪个文档中。 引用文档:

    如果没有指定写入索引并且有多个索引被别名引用,则不允许写入。

    根据上面的引用,一个解决方案是指定一个写入索引 (see docs) 作为新文档的默认目标(也可以指定rollover rules 来更新它)。

    当然,另一种解决方案是在放置文档时使用实际的索引名称。

    【讨论】:

    • 感谢您回答@Cavaz,我一定会更新。只有一个索引的“is_write_index”为真但是我的问题是,第一次没有索引也没有别名,那么在这种情况下我该如何使用别名
    • 将记录放入的服务将使用 PUT /some-alias/_doc 将记录放入 test4 索引 test1 - is_write_index - false, test2 - is_write_index - false, test3 - is_write_index - false, test4 - is_write_index - true
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    相关资源
    最近更新 更多