elasticsearch - 如何以最小延迟从弹性搜索更新 neo4j 图形数据库?
问题描述
我有许多定期更新的 Elastic Search 索引,我希望这些更新反映在 neo4j 图形数据库中,在 Elastic Search 中的项目索引和更新之间的延迟最小新4j。
(此外,将管理工作保持在低水平也很重要:例如,我只想更新一个密码语句来定义索引文档和图形之间的映射,这样一旦我创建了一个索引,它的工作就很有限将其数据添加到 Neo4j)。
是否可以使用弹性搜索观察者和触发器来做到这一点?还是通过其他方式?
我知道 Neo4j 中 APOC 库的Elastic Search 功能,但我宁愿在更新时从 Elastic Search 推送而不是从 Neo4j 拉取。GraphAware 也有一个extension,但它似乎主要针对 Neo4j 到 ES 的方向。
解决方案
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摄取数据。
推荐阅读
- javascript - 根据元素中的索引值动态添加属性到html元素
- python - Python IDLE 重启
- java - android studio中启动画面后的白屏
- c# - C#字典包含列表作为值,当列表更改时,字典更改
- hive - 从 Athena 中的 json_array 中提取值
- c# - SceneManager.LoadScene(index) 在异步方法中调用时不起作用。unity3d
- regex - 正则表达式最坏的可能复杂性
- java - Spring PagingAndSortingRepository 在处理过程中删除条目
- python - 在 Python 中捕获特定 IP 地址集的正则表达式
- r - 没有互联网的应用