如何在hibernate search 5.3中使用JMS主题重新索引服务器集群中的lucene索引

时间:2015-11-06 10:51:38

标签: hibernate hibernate-search jms-topic

我是hibernate搜索的新手,我正在使用hibernate search 5.3来处理我的应用程序。我有一个服务器集群,应该维护一个lucene索引,如果权限发生了变化,我试图把它放在一个jms队列中,让所有其他服务器从这里提取更新并重新索引它们的lucene索引。

我编写了一个searchInterceptor,它会在每次交易后获取实体并将它们发送给一个主题。我已经扩展了FullTextIndexEventListener并实现了processWork()以在队列中添加消息,我现在被卡住了,因为现在这是最终的。 任何人都可以告诉我如何从这里开始吗?

1 个答案:

答案 0 :(得分:0)

您没有选择Search提供的主/从设置的任何原因,例如JMS主/从设置,其中索引由单个主设备完成,然后索引共享给从设备?

但是如果你想继续使用你的方法,我认为正确的扩展点是BackendQueueProcessor。您需要混合使用LuceneBackendQueueProcessorJmsBackendQueueProcessor,其中传入的更改在本地编制索引,并放在所有其他节点的JMS主题上。或者为了保持体系结构对称,您通常可以对主题进行所有更新,并且所有节点仅适用于此主题。无论哪种方式,当前的JMS后端代码都应该能够引导您进入正确的方向。