gpt4 book ai didi

elasticsearch - 在Elasticsearch中将索引的字段类型更改为新索引

转载 作者:行者123 更新时间:2023-12-03 00:53:44 25 4
gpt4 key购买 nike

可以说我有索引,其映射如下所示:

curl -XPUT 'http://localhost:9200/oldindex/_mapping/book' -d '
{
"book" : {
"properties" : {
"title" : {"type" : "text"},
"words" : {"type" : "text"},
"pages": {"type": "int"}
}
}
}'

我想从旧索引创建一个新索引,但是现在我希望“单词”类型字段是“关键字”而不是“文本”:
curl -XPUT 'http://localhost:9200/oldindex/_mapping/book' -d '
{
"book" : {
"properties" : {
"title" : {"type" : "text"},
"words" : {"type" : "keyword"},
"pages": {"type": "int"}
}
}
}'

我怎样才能做到这一点?我可以使用“Reindex API”还是有更好的解决方案?

最佳答案

假设您不希望索引上有另一个字段,例如wordsKeyword,那么Reindex API可能是最好的。将数据移动到临时索引,对索引进行核对并重新创建(具有更新的映射),然后将临时索引数据重新索引回新索引。
逐步说明如下:

  • 使用新映射创建新索引。
  • 通过_reindex将数据从旧索引复制到新索引。
  • 删除旧索引。
  • 使用新映射重新创建旧索引。
  • 通过_reindex将数据从新索引复制到旧索引。
  • 删除新索引。 -“旧索引”(从技术上讲,是一个新的同名索引)现在将具有更新的映射和数据。总共五个API调用(两个_reindexes将数据移至新映射,然后将其移回)

  • 如果您不介意拥有另一个字段并且不想重新索引,可以考虑使用 _update_by_query API通过脚本将值从字面上复制到新映射的 keyword字段中,从而弃用 text一个。

    关于elasticsearch - 在Elasticsearch中将索引的字段类型更改为新索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48290970/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com