2

在使用 Wicket+Spring+JPA/Hibernate 堆栈的应用程序中,我有一个收件箱/搜索页面,它应该具有相当复杂的搜索功能,其中保存在数据库中的记录使用无数过滤选项进行过滤。到目前为止,我已经使用 JPA Criteria API 来构建数据库查询,但它变得非常混乱。我想知道 Hibernate-Search 是否适合这个,即使我真的不需要任何全文搜索功能,我只是觉得(从我读到的内容)生成查询可能会更容易一些?

4

2 回答 2

1

抱歉,Hibernate Search 是基于 Lucence。它不仅仅是一种其他查询语言。

Lucene 不会搜索数据库中的实体,它会在 Lucene 索引中搜索属性。Hibernate Search 添加了将实体从数据库连接到 Lucene 索引的功能。

当您需要高级全文搜索时,Hibernate Search 和 Lucene 是创建工具。但是,如果您不需要它,那只是很多不必要的工作(和问题)。

所以,只要你不使用 Lucene,Hibernate Search 就不能满足你的需求。

于 2010-11-23T13:11:15.897 回答
0

Hibernate Search 的主要用例是全文搜索。但是,它也可以用于索引/搜索简单的属性/标准。编写查询的语法是否比条件查询更简单是个人喜好问题。如果您没有使用全文搜索功能,则必须考虑在应用程序中添加了额外的步骤。搜索查询将针对 Lucene 索引运行,该索引将返回实体 ID(除非使用投影)。然后将从数据库中获取匹配的实体。另一方面,一旦您使用了 Hibernate Search,就很容易通过向您的某些条件添加一些全文搜索功能(如果可能的话)来“改进”您的搜索。

无论您是否使用搜索,我认为关键是编写某种以编程方式构建查询的框架 - 搜索或条件查询。

于 2010-12-30T11:36:33.070 回答