11.2.3.3. Ickle
Ickle クエリー言語を使用して、ライブラリーおよびリモートクライアント/サーバーモードの両方でリレーショナルおよびフルテキストクエリーを作成します。
Ickle は文字列ベースで、以下の特徴があります。
- Java クラスをクエリーし、プロトコルバッファーをサポートします。
- クエリーは単一のエンティティータイプをターゲットにできます。
- クエリーは、コレクションを含む埋め込みオブジェクトのプロパティーでフィルタリングできます。
- プロジェクト、集計、ソート、名前付きパラメーターをサポートします。
- インデックス付きおよびインデックスなしの実行をサポートします。
- 複雑なブール式をサポートします。
- フルテキストクエリーをサポートします。
-
user.
age > sqrt(user.shoeSize+3)などの式での計算をサポートしません。 - 参加はサポートしていません。
- サブクストリーはサポートしません。
- さまざまな Red Hat Data Grid} API でサポートされています。Query が QueryBuilder によって生成されると、継続的なクエリーやリスナーのイベントフィルターなど、Query が受け入れられます。
API を使用するには、最初にキャッシュに QueryFactory を取得し、クエリーで使用する文字列を渡す .create()メソッドを呼び出します。たとえば、以下のようになります。
QueryFactory qf = Search.getQueryFactory(remoteCache);
Query q = qf.create("from sample_bank_account.Transaction where amount > 20");
QueryFactory qf = Search.getQueryFactory(remoteCache);
Query q = qf.create("from sample_bank_account.Transaction where amount > 20");
フルテキスト演算子で使用されるすべてのフィールドを使用する場合は、インデックス付きと Analysed の両方 に する必要があります。
11.2.3.3.1. Ickle クエリー言語パーサー構文 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Ickle クエリー言語のパーサー構文には、いくつかの重要なルールがあります。
- 空白は重要ではありません。
- フィールド名ではワイルドカードはサポートされません。
- デフォルトのフィールドがないため、フィールド名またはパスは必ず指定する必要があります。
-
&&および||は、フルテキストと JPA 述語の両方で、ANDまたはORの代わりに使用できます。 -
!はNOTの代わりに使用できます。 -
足りないブール値Operatorは
ORとして解釈されます。 - 文字列の用語は、一重引用符または二重引用符で囲む必要があります。
- ファジー性とブースティングは任意の順序で受け入れられず、常にファジー性が最初になります。
-
<>の代わりに!=が許可されます。 -
ブーディングは、
>、>=、<、⇐Operator には適用できません。同じ結果を達成するために範囲を使用することができます。