2013-03-22 54 views
0

我需要使用hibernate执行全文查询,而Hibernate Seach似乎是一个不错的选择,匹配同义词等功能非常有趣。问题是我的应用程序只执行查询,另一个应用程序执行插入/更新/删除操作。我不知道是否“hibernate seach”可以保留在这种情况下更新的文本索引,并且在它不能的情况下,我认为重建每个查询中的索引不是一个选项(是吗?)。Hibernate搜索只读数据库

在数据库中执行更新的应用程序有能力为我的应用程序生成事件。这可能是一个刷新指标的机会...

任何建议都会被推断。在此先感谢:

卡洛斯。

回答

1

我假设这个其他应用程序不是可以触发索引更新的Java应用程序。在这种情况下,你确实要确保索引得到正确更新。如果您可以向Java应用程序发送通知来触发更新,那么已经赢得了很多。例如,如果您可以发送已更改实体的主键,则可以使用这些ID仅更新索引中的这些实体。你不必重建整个索引。另一种方法是使用最后更新的列。当索引应用获取通知时,它会选择自上次更新触发以来发生更改的记录。这取决于你的表的样子和你的要求是什么。

0

是的,全索引重建它太长了大多数情况下。但是如果你能够接收事件 - 这不是问题。收到活动时只需重新索引实体manually

顺便说一句,如果你使用PostgreSQL或Oracle检查PostgreSQL FTSOracle Text