【发布时间】:2016-03-11 08:33:40
【问题描述】:
我有一个嵌入式 Neo4j 2.3.2 数据库的 HA 设置,它使用旧版 Lucene 索引来存储数据。我现在希望能够监听该索引中的更改,以便仅在索引更改时才能将更改推送到客户端。
因为这是一个 HA 设置,更改索引的事务可能不在进行轮询的机器上,所以如果我理解正确,我无法仅使用 TransactionEventHandler 来解决这个问题。
有没有其他方法可以在不重复查询索引的情况下监控 Lucene 索引的变化?
理想情况下,我只需注册一个索引回调,当索引更改时会触发该回调,但我还没有从 Lucene 或 Neo4j 中找到这样的方法。此外,我一直在尝试从 Neo4j 访问 Lucene 索引,但只能到达从 gds.index().forNodes("myIndex") 返回的 org.neo4j.kernel.impl.coreapi.LegacyIndexProxy[Node]。
让服务器每秒为每个连接的客户端查询索引以获取更新似乎在某些时候会变得非常占用 CPU。
【问题讨论】: