elasticsearch - Elasticsearch 仅重新索引丢失的文档
问题描述
我正在尝试重新索引从集群 A 到集群 B 的 200M 文档索引。我将 Reindex API 与远程源一起使用,一切正常。在我重新索引的同时,一些文档被添加到集群 A 中,所以我想将它们也添加到集群 B 中。
我再次启动了重新索引请求,但似乎重新索引过程需要很多时间,就像它再次重新索引所有内容一样。
我的问题是,集群是否从头开始重新索引所有文档,即使它们没有改变?
我的弹性搜索版本是 5.6
解决方案
elasticsearch 不知道文档是否有变化。因此,它尝试将每个文档完全包含在两个索引中。如果您的数据中有类似的字段insert_time
,您可以使用 reindex with query 来限制 A 的索引部分成为 B 上的 reindex。这将让您使用旧的 reindex 并更快地完成它。通过查询重新索引将是这样的:
POST _reindex
{
"source": {
"index": "A",
"query": {
"range": {
"insert_time": {
"gt": "time you want"
}
}
},
"dest": {
"index": "B"
}
}
推荐阅读
- hive - hive sql 内连接 - 如何在同一查询中获取 sum & row_num
- python - 超出“范围优化器最大内存大小”的内存容量
- c# - 内存缓存在 .Net Framework 4 中不起作用
- gitlab-ci - 如何列出修改后的文件?
- angular - 未终止的属性选择器
- javascript - 尝试使用 React 和 SpringBoot 上传文件时出现错误 404
- sql - Access-根据另一个表中的任何匹配字段计算字段
- wpf - 在 Material Design Dialog WPF 中插入用户控件
- makefile - 在 Makefile 中,使用带有子文件夹和子文件夹替换的 patsubst 和通配符
- java - 设置背景时JFrame位置发生变化