Elasticsearch 重建索引
Elasticsearch Reindex
有一个我想应用更新映射的索引,我已尽力遵循 ES 和 Whosebug 上的文档,但我现在卡住了。
原始索引:logstash-index-YYYY.MM
中有数据
我创建了索引:logstash-index-new-YYYY.MM
(它有一个新映射的模板)
使用以下查询:
/logstash-index-YYYY.MM/_search?search_type=scan&scroll=1m
{
"query":{
"match_all":{}
},
"size": 30000
}
我得到一个 _scroll_id
并且我的文档不到 30k,所以我应该只需要 运行 一次。
如何使用该 ID 将数据推送到新索引中?
您没有使用 scrollid 将数据推入新索引。您可以使用它从滚动查询中获取另一部分数据。
当您 运行 扫描查询时,第一遍不会 return 任何结果,它会扫描集群中的分片和 returns scrollid。另一遍(使用第一遍的 scrollid)将 return 实际结果。
如果您想将该数据放入新索引,您应该用您选择的语言编写某种简单的程序来获取这些数据,然后将其放入您的新索引。
elasticsearch 博客上有一个非常好的 article 如何动态更改索引的映射。不幸的是,重建索引本身并未包含在此处。
有一个我想应用更新映射的索引,我已尽力遵循 ES 和 Whosebug 上的文档,但我现在卡住了。
原始索引:logstash-index-YYYY.MM
中有数据
我创建了索引:logstash-index-new-YYYY.MM
(它有一个新映射的模板)
使用以下查询:
/logstash-index-YYYY.MM/_search?search_type=scan&scroll=1m
{
"query":{
"match_all":{}
},
"size": 30000
}
我得到一个 _scroll_id
并且我的文档不到 30k,所以我应该只需要 运行 一次。
如何使用该 ID 将数据推送到新索引中?
您没有使用 scrollid 将数据推入新索引。您可以使用它从滚动查询中获取另一部分数据。
当您 运行 扫描查询时,第一遍不会 return 任何结果,它会扫描集群中的分片和 returns scrollid。另一遍(使用第一遍的 scrollid)将 return 实际结果。
如果您想将该数据放入新索引,您应该用您选择的语言编写某种简单的程序来获取这些数据,然后将其放入您的新索引。
elasticsearch 博客上有一个非常好的 article 如何动态更改索引的映射。不幸的是,重建索引本身并未包含在此处。