我们正在考虑实现某种类型的消息缓存,它将保存我们发送到搜索索引的消息,这样我们就可以在索引下降很长一段时间(例如,一个完整的重新索引)时保持下去,然后“重新应用”这些消息。这些消息是我们索引的文档的创建或更新。如果空间足够便宜,具有像Couchbase这样的可伸缩功能,我们甚至可以保存所有的消息,但我还没有对消息的大小和数量做过任何估计。无论如何,我建议对这个任务进行Couchbase + XDCR + Elasticsearch搜索,因为大部分工作都是自动完成的,但是我还有4个问题:
更新:
因此,我们将文档存储在RDBMS中,因为我们需要立即访问插入的文档以及其他一些东西。我们通过消息将有限版本的文档发送到搜索引擎。如果我们想要在索引中添加一个字段,我们需要从RDBMS中以某种方式重新索引系统。如果我们有这个Couchbase消息缓存,我们可以首先将字段添加到消息中,然后从RDBMS中关闭旧消息的索引和重新索引。然后,我们可以重新打开消息的索引,所有消息的“队列”都将被索引,而不会丢失任何信息。
这个系统(如果有效的话)将消除对MQ服务器、消息侦听器的需求,并确保索引中没有缺少任何文档。
版本控制是必要的,因为我们不想将“更新”应用于索引,该索引实际上包含了一个更新的文档(不确定这种情况是否会发生,我想一想)。
我很感激通过更改Elasticsearch插件代码来实现第1点和第4点可能不是很大的任务,但我想首先确认这个想法是合理的!
发布于 2013-02-01 08:25:59
今天的Couchbase-Elasticsearch集成应该被看作是Couchbase的索引引擎。这意味着索引由Couchbase中的数据“管理/控制”。
XDCR用于将“所有事件”发送到Elasticsearch。这意味着每次创建、修改或删除文档(存储在Couchbase中)时,索引都是更新/删除的。
因此,存储在Couchbase桶中的“所有文档”都被索引到Elasticsearch中。
让我们根据Couchbase-Elasticsearch的当前实现,逐一回答您的问题。
因此,让我问您更多的问题:-如何将文档插入到应用程序中?(而Couchbase在哪里?Elasticsearch?) -文档的类型是什么?-您希望缓存到Couchbase中的是什么?
https://stackoverflow.com/questions/14635063
复制相似问题