1.2. アノテーションのインデックス作成
キャッシュでインデックス作成を有効にする場合は、インデックスを作成するように Data Grid を設定します。また、実際にインデックス化できるように、キャッシュ内のエンティティーの構造化表現で Data Grid を提供する必要もあります。
Data Grid インデックスには、エンティティーとフィールドを制御する 2 つのアノテーションがあります。
@Indexed
- Data Grid がインデックスをインデックス化するエンティティーまたは Protobuf メッセージタイプを示します。
@Field
Data Grid がインデックスをインデックス化し、かつ以下の属性があるフィールドを示します。
属性 説明 値 index
Data Grid にインデックスのフィールドを含めるかどうかを制御します。
index.YES
またはIndex.NO
store
Data Grid がフィールドをインデックスに格納できるようにして、フィールドをプロジェクションに使用できるようにします。
Store.YES
またはStore.NO
.Store.YES
を使用し、ソートに使用する必要があるフィールドにはsortable = true
を設定します。analyze
全文検索にフィールドを含めます。
analyze.NO
または アナライザーの定義を指定します。
リモートキャッシュ
次の 2 つの方法で、リモートキャッシュのインデックスアノテーションを Data Grid に提供できます。
-
Java クラスに
@ProtoDoc("@Indexed")
および@ProtoDoc("@Field(…)")
に直接アノテーションを付けます。
次に、Protobuf スキーマ.proto
ファイルを生成してから、それらを Data Grid Server にアップロードします。 Protobuf スキーマに @
Indexed
および@Field
で直接アノテーションを付けます。
次に、Protobuf スキーマを Data Grid Server にアップロードします。たとえば、次のスキーマは
@Field
アノテーションを使用します。/** * @Field(analyze = Analyze.YES, store = Store.YES, sortable = true) */ required string street = 1;
@Field
アノテーションにstore = Store.YES
およびsortable = true
を含めることにより、street
フィールドを使用して、警告メッセージや予期しない結果に遭遇することなく、クエリーをソートできます。
組み込みキャッシュ
埋め込みキャッシュの場合、Data Grid がエントリーを格納する方法に従って、Java クラスにインデックスアノテーションを追加します。
@FullTextField
などの他の Hibernate Search アノテーションとともに、@Indexed
および @Field
アノテーションを使用します。