1.2. Data Grid のネイティブインデックス化のアノテーション
キャッシュでインデックス作成を有効にする場合は、インデックスを作成するように Data Grid を設定します。また、実際にインデックス化できるように、キャッシュ内のエンティティーの構造化表現で Data Grid を提供する必要もあります。
Data Grid インデックスアノテーションの概要
- @Indexed
- Data Grid がインデックスをインデックス化するエンティティーまたは Protobuf メッセージタイプを示します。
Data Grid がインデックス化するフィールドを指定するには、インデックスのアノテーションを使用します。これらのアノテーションは、埋め込みクエリーとリモートクエリーの両方で同じ方法で使用できます。
- @Basic
-
任意のタイプのフィールドをサポートします。変換や処理を必要としない数値や短い文字列には
@Basic
アノテーションを使用します。 - @Decimal
- 10 進数値を表すフィールドにこのアノテーションを使用します。
- @Keyword
- このアノテーションは、文字列であり、完全一致を目的としたフィールドに使用します。キーワードフィールドは、インデックス作成中に分析またはトークン化されません。
- @Text
- このアノテーションは、テキストデータを含み、全文検索機能を目的としたフィールドに使用します。アナライザーを使用してテキストを処理し、個別のトークンを生成できます。
- @Embedded
-
このアノテーションを使用して、フィールドを親エンティティー内に埋め込みオブジェクトとしてマークします。
NESTED
構造は元のオブジェクト関係構造を保持しますが、FLATTENED
構造 は親エンティティーのリーフフィールドを複数値にします。@Embedded
で使用されるデフォルトの構造はNESTED
です。
各アノテーションは、エンティティーのインデックス付け方法を説明するために使用できる一連の属性をサポートしています。
アノテーション | サポート対象の属性 |
---|---|
@Basic | Searchable, sortable, projectable, aggregable, indexNullAs |
@Decimal | Searchable, sortable, projectable, aggregable, indexNullAs, decimalScale |
@Keyword | Searchable, sortable, projectable, aggregable, indexNullAs, normalizer, norms |
@Text | Searchable, projectable, norms, analyzer, searchAnalyzer, termVector |
Data Grid アノテーションの使用
以下の 2 つの方法で、インデックスアノテーションを Data Grid に提供できます。
-
Data Grid アノテーションを使用して Java クラスまたはフィールドに直接アノテーションを付けます。
次に、Protobuf スキーマ、.proto
ファイルを生成または更新してから、Data Grid Server にアップロードします。 Protobuf スキーマに直接
@Indexed
アノテーション、@Basic
、@Keyword
または@Text
でアノテーションを付けます。
次に、Protobuf スキーマを Data Grid Server にアップロードします。たとえば、以下のスキーマは
@Text
アノテーションを使用します。/** * @Text(projectable = true) */ required string street = 1;