我有一个嵌入式Neo4j 2.3.2数据库的HA设置,它使用传统的Lucene索引来存储数据。我现在希望能够监听该索引中的更改,以便只有在索引更改时才能将更改推送到客户端。
因为这是HA设置,更改索引的事务可能不在正在进行轮询的计算机上,所以如果我理解正确,我只能使用{{1}来解决这个问题。 }。
有没有其他方法可以监视Lucene索引的更改,而无需重复对索引执行查询?
理想情况下,我只会在索引上注册一个回调函数,这会在索引发生变化时触发,但我还是没有从Lucene或Neo4j中找到这样的方法。此外,我一直在尝试从Neo4j访问Lucene索引,但只能从TransactionEventHandler
返回org.neo4j.kernel.impl.coreapi.LegacyIndexProxy[Node]
。
让服务器每秒为每个连接的客户端查询索引以获取更新似乎在某些时候它会变得非常耗费CPU。
答案 0 :(得分:0)
tx监听器将调用启动事务的机器,该事务可以是主机(并且应该是),但是如果你在从机上启动tx,则会在那里调用tx-listener。
Afaik目前无法直接监控Lucene的变化。
您想要检测/推送哪种更改?