随着对应用程序的域模型对象的更改,希望让人们对保持 Lucene 索引保持最新的想法。
有问题的应用程序是一个使用 Hibernate 的基于 Java/J2EE 的 Web 应用程序。我目前的工作方式是 Hibernate 映射模型对象都实现了一个通用的“可索引”接口,该接口可以返回一组记录在 Lucene 中的键/值对。每当执行涉及此类对象的 CRUD 操作时,我通过 JMS 队列将其发送到消息驱动的 bean 中,该 bean 在 Lucene 中记录对象的主键和从 Indexable 对象的 index() 方法返回的键/值对假如。
我对这个方案的主要担心是 MDB 是否落后并且无法跟上即将到来的索引操作,或者如果某种错误/异常阻止对象成为索引。结果是某个时间段或较长时间段的过期索引。
基本上我只是想知道其他人为这种事情想出了什么样的策略。不一定要寻找一个正确的答案,但我正在想象一系列“白板”之类的想法,让我的大脑思考替代方案。