1.2. アノテーションのインデックス作成
キャッシュでインデックス作成を有効にする場合は、インデックスを作成するように Data Grid を設定します。また、実際にインデックス化できるように、キャッシュ内のエンティティーの構造化表現で Data Grid を提供する必要もあります。
Data Grid インデックスには、エンティティーとフィールドを制御する 2 つのアノテーションがあります。
@Indexed- Data Grid がインデックスをインデックス化するエンティティーまたは Protobuf メッセージタイプを示します。
@FieldData Grid がインデックスをインデックス化し、かつ以下の属性があるフィールドを示します。
Expand 属性 説明 値 indexData Grid にインデックスのフィールドを含めるかどうかを制御します。
index.YESまたはIndex.NOstoreData 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(analyze = Analyze.YES, store = Store.YES, sortable = true) */ required string street = 1;Copy to Clipboard Copied! Toggle word wrap Toggle overflow @Fieldアノテーションにstore = Store.YESおよびsortable = trueを含めることにより、streetフィールドを使用して、警告メッセージや予期しない結果に遭遇することなく、クエリーをソートできます。
組み込みキャッシュ
埋め込みキャッシュの場合、Data Grid がエントリーを格納する方法に従って、Java クラスにインデックスアノテーションを追加します。
@FullTextField などの他の Hibernate Search アノテーションとともに、@Indexed および @Field アノテーションを使用します。