1

私のプロジェクトでは、組み込みの 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からそのインデックスとクエリを作成する方法は? 例を挙げてください。

4

1 に答える 1

1

独自のスクリプトを使用するか、SessionCustomizer や SessionEvent を使用するなど、アプリの起動時に JPA を使用して、独自の DDL を実行してフルテキスト インデックスを作成できます。

フルテキスト関数を呼び出すには、JPQL FUNC または FUNCTION 演算子を使用できます。

JavaでH2データベースの全文検索機能を使用する方法を参照 してください。

于 2013-03-19T13:18:49.257 に答える