使用JPA(Eclipselink)在H2数据库中执行全文搜索

时间:2013-03-19 09:38:59

标签: java jpa full-text-search eclipselink h2

在我的项目中,我使用嵌入式H2数据库和JPA(eclipselink)。 我需要提出这样的问题:SELECT * FROM products WHERE title like '%the_name%' 前导%消除了使用索引,因此H2执行全表扫描。我必须提高该查询的性能。我发现可能的解决方案是在该列上创建全文索引并进行全文搜索。 必须使用以下参数创建数据库:

properties.put("eclipselink.ddl-generation", "create-tables");
properties.put("eclipselink.ddl-generation.output-mode", "database");

如何使用JPA和H2完成此操作?如何从JPA进行索引和查询?请举个例子。

1 个答案:

答案 0 :(得分:1)

您可以执行自己的DDL来创建全文索引,可以通过自己的脚本,也可以在应用启动时通过JPA创建,例如使用SessionCustomizer或SessionEvent。

要调用全文功能,您可以使用JPQL FUNC或FUNCTION运算符。

请参阅, How to use full text search feature of H2 database in java?