首页 > 解决方案 > 如何以最小延迟从弹性搜索更新 neo4j 图形数据库?

问题描述

我有许多定期更新的 Elastic Search 索引,我希望这些更新反映在 neo4j 图形数据库中,在 Elastic Search 中的项目索引和更新之间的延迟最小新4j。

(此外,将管理工作保持在低水平也很重要:例如,我只想更新一个密码语句来定义索引文档和图形之间的映射,这样一旦我创建了一个索引,它的工作就很有限将其数据添加到 Neo4j)。

是否可以使用弹性搜索观察者触发器来做到这一点?还是通过其他方式?

我知道 Neo4j 中 APOC 库的Elastic Search 功能,但我宁愿在更新时从 Elastic Search 推送而不是从 Neo4j 拉取。GraphAware 也有一个extension,但它似乎主要针对 Neo4j 到 ES 的方向。

标签: elasticsearchneo4jneo4j-apoc

解决方案


ElasticSearch 触发器可以发布一个 HTTP 请求,而 Neo4j 有一个 HTTP Api,所以这似乎是可行的:https ://neo4j.com/docs/http-api/current/

如果我在生产环境中这样做,我可能会开发一个微服务来监听 webhook 并将数据存储到 Neo4j 中。这样,您可以引入重试策略以及记录错误(如果没有别的)。

在做了一些研究之后,您可以配置 ElasticSearch 以使用https://github.com/malike/elasticsearch-kafka-watch等工具将更新推送到 Kafka ,然后使用Neo4j Kafka Sink摄取数据。


推荐阅读