没有数据库的hibernate搜索

时间:2011-03-10 02:46:33

标签: java lucene hibernate-search

是否可以仅使用hibernate-search作为注释(bean => document / document => bean mapping),而根本不使用数据库?如果是这样,是否有任何在线样本基本上显示如何设置它?

我找到了以下内容:http://mojodna.net/2006/10/02/searchable-annotation-driven-indexing-and-searching-with-lucene.html,但如果它支持我的用例,我更喜欢hibernate-search。

3 个答案:

答案 0 :(得分:2)

Hibernate search 3.4将查询引擎与Hibernate Core分离。例如,Hibernate Search被重用于使用Infinispan实现查询。我不知道代码是否打包以便你可以使用HS,比如Spring和JDBCTemplate(我想做的事情)。这是一个领先我稍后会调查,但也许你可以看一下......

答案 1 :(得分:2)

Starman是正确的,3.4版本的Hibernate Search正在从Hibernate Core中抽象出搜索引擎,而Infinispan Query是一个集成示例,它可以在没有数据库的情况下正常工作。 Spring也没有问题,但你需要确保将更新事件发送到查询引擎,以便索引不会失去同步。使用Hibernate时,优点是它透明地侦听数据库的更改并在事务提交时将它们应用于索引,因此索引始终处于同步状态(如果将搜索配置为使用异步后端,则关闭)。

我建议查看Infinispan Query的代码,因为它非常小,只是委托调用来公开 Infinispan风格的API 。大多数代码都是测试或集成,以正确管理引擎的生命周期:与Infinispan一起启动和停止它。

答案 2 :(得分:1)

我认为这是不可能的,因为当您启用Hibernate搜索时,您在实体上启用了该实体,并且该实体具有对表和搜索索引的引用。