我是hibernate搜索的新手,我正在使用hibernate search 5.3来处理我的应用程序。我有一个服务器集群,应该维护一个lucene索引,如果权限发生了变化,我试图把它放在一个jms队列中,让所有其他服务器从这里提取更新并重新索引它们的lucene索引。
我编写了一个searchInterceptor,它会在每次交易后获取实体并将它们发送给一个主题。我已经扩展了FullTextIndexEventListener并实现了processWork()以在队列中添加消息,我现在被卡住了,因为现在这是最终的。 任何人都可以告诉我如何从这里开始吗?
答案 0 :(得分:0)
您没有选择Search提供的主/从设置的任何原因,例如JMS主/从设置,其中索引由单个主设备完成,然后索引共享给从设备?
但是如果你想继续使用你的方法,我认为正确的扩展点是BackendQueueProcessor。您需要混合使用LuceneBackendQueueProcessor
和JmsBackendQueueProcessor
,其中传入的更改在本地编制索引,并放在所有其他节点的JMS主题上。或者为了保持体系结构对称,您通常可以对主题进行所有更新,并且所有节点仅适用于此主题。无论哪种方式,当前的JMS后端代码都应该能够引导您进入正确的方向。