2013-03-19 106 views
1

在我的項目中,我使用嵌入式H2數據庫和JPA(eclipselink)。 我需要做這樣的查詢:SELECT * FROM products WHERE title like '%the_name%' 前導%消除了使用索引,所以H2執行全表掃描。我必須提高該查詢的性能。我找到的可能解決方案是在該列上創建一個全文索引並進行全文搜索。在H2數據庫中使用JPA(Eclipselink)執行全文搜索

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

怎麼可以這樣使用JPA和H2來完成: 數據庫必須與這些PARAMS產生的呢?如何從JPA創建索引和查詢?請舉個例子。

回答

1

您可以執行自己的DDL來創建全文索引,可以通過您自己的腳本或通過JPA在應用程序啓動時(例如使用SessionCustomizer或SessionEvent)來創建。

要調用全文本功能,您可以使用JPQL FUNC或FUNCTION運算符。

見, How to use full text search feature of H2 database in java?