第14章 インデックスとクエリー
14.1. 概要
Data Grid は、メインの Map のような API を補完する強力な検索 API を使用して、グリッドに保存されている Protocol Buffers を介してエンコードされた Java Pojo またはオブジェクトのインデックス作成と検索をサポートします。
クエリーはライブラリーモードとクライアント/サーバーモード(Java、C#、Node.js、その他のクライアントの場合) の両方で可能であり、DataGrid は ApacheLucene を使用してデータをインデックス化でき、広い範囲のデータ取得ユースケースをカバーするために効率的なフルテキスト対応の検索エンジンを提供します。
インデックス設定はスキーマ定義に依存し、Data Grid はライブラリーモードの場合はアノテーション付き Java クラスを使用でき、他の言語で書かれたリモートクライアントには protobuf スキーマを使用できます。protobuf で標準化することで、Data Grid は Java クライアントと 非 Java クライアントとの間の完全な相互運用性を可能にします。
インデックス付きクエリーとは別に、Data Grid はインデックス化されていないデータまたは部分的にインデックス化されたデータでクエリーを実行できます。
Search API の観点では、Data Grid には、文字列ベースである Ickle と呼ばれる独自のクエリー言語があり、完全なテキストクエリーのサポートが追加されました。Query DSL は、フルテキストが必要ない場合に埋め込みおよびリモート java クライアントの両方に使用できます。Java 埋め込みクライアント Data Grid は、Faceted や Spatial 検索などの高度な検索機能とは別に、グリッドでの Lucene クエリーの実行をサポートする Hibernate Search Query API を提供します。
最後に、Data Grid は 継続的なクエリー をサポートします。これは、他の API とは逆に動作します。クエリーの作成、クエリーの実行、結果の取得の代わりに、クライアントは、クラスター内のデータの変更に応じて継続的に評価されるクエリーを登録でき、変更されたデータがクエリーと一致するたびに通知を生成します。