我想使用多播功能设置elasticsearch集群。一个节点是外部弹性搜索节点,另一个节点是节点客户端(客户端属性设置为true-not hold data)。
此节点客户端是使用spring data elasticsearch创建的。所以我想将postgresql数据库中的数据索引到外部elasticsearch节点。我使用jdbc river插件索引了数据。
但我想知道是否有任何可以用于postgresql的索引数据的应用程序而不是使用河流插件?
答案 0 :(得分:4)
虽然需要编写专用的Postgres-> ES网关并使用一些Postgres特定功能,但可以实时执行此操作。我在这里写过:http://haltcondition.net/2014/04/realtime-postgres-elasticsearch/
原理实际上非常简单,我提出的方法的复杂性是由于处理角落情况,例如多个网关运行和网关暂时不可用。简而言之,我的解决方案是:
在我的实验中,此模型能够在Postgres行插入/更新后对Elasticsearch进行亚秒级更新。显然,这在现实世界中会有所不同。
这里有一个Vagrant和Docker测试框架的概念验证项目:https://bitbucket.org/tarkasteve/postgres-elasticsearch-realtime