我计划从网页中提取(基本上是抓取,允许)一些数据并将其存储在elasticsearch中(你知道,搜索)。
虽然我有权从网站上删除数据,但
当我将其存储在es中时,我计划将其放入一个索引并转换为映射类型,例如thing
。
但是,随着时间的推移,源(HTML网页)可能会随着添加/删除/更改某些条目的内容而发生变化。由于源中没有标识符,因此我无法轻易识别新标识符(更糟糕的是,已删除的标识符或已更改的标识符)。
我想让我的es索引保持最新状态,我想的是某种蓝绿色机制:
index-prod
,并且该流程构建的新索引为index-rc
(候选发布版)index-rc
(对条目数量进行灵活的速度检查,我们知道应该使用的样本查询等等。)我打算使用AWS Elastisearch Service托管elasticsearch集群,并且可能使用Route 53 CNAMEs(也许是ELB?)来汇总一些内容但是我想知道在elasticsearch本身中是否存在更多的隐式支持这样做?
基本上,我想将一个索引的数据换成另一个索引。
答案 0 :(得分:1)
您不需要在索引之间交换整个数据......如果我做对了,您可以使用Aliases从实际版本更改为下一个索引版本。
要慢慢更改查询端点,我还假设某些Load Balancer(如nginx)是最佳解决方案。网上有很多cases。
答案 1 :(得分:0)
我认为您可以使用Reindex API。
答案 2 :(得分:0)
我从Stackoverflow以外的其他来源听说过这个。
indice aliases解决了这个问题。
这是时间序列数据的常见现象。 ES time series documentation中记录了原子交换索引,将其标记为当前并清除旧索引的示例。