インデックスパターン

Elasticsearch SQLは、複数のインデックスまたはテーブルに一致させるための2種類のパターンをサポートしています:

Elasticsearchマルチターゲット構文

インデックスを列挙するためのElasticsearchの表記法、含めるまたは除外するためのマルチターゲット構文は、引用符で囲まれているか、テーブル識別子としてエスケープされている限りサポートされています。

例えば:

Sql

  1. SHOW TABLES "*,-l*";
  2. catalog | name | type | kind
  3. ---------------+---------------+----------+---------------
  4. javaRestTest |emp |TABLE |INDEX
  5. javaRestTest |employees |VIEW |ALIAS

パターンが二重引用符で囲まれていることに注意してください "。これは*を列挙しており、すべてのインデックスを意味しますが、-のためにlで始まるすべてのインデックスを除外します。この表記法は非常に便利で強力であり、ターゲットの命名規則に応じて、含めることと除外することの両方を可能にします。

同様のパターンを使用して、複数のインデックスまたはテーブルをクエリすることもできます。

例えば:

Sql

  1. SELECT emp_no FROM "e*p" LIMIT 1;
  2. emp_no
  3. ---------------
  4. 10001

すべての解決された具体的なテーブルが正確に同じマッピングを持つ必要があるという制限があります。

[プレビュー] この機能は技術プレビュー中であり、将来のリリースで変更または削除される可能性があります。Elasticは問題を修正するために取り組みますが、技術プレビューの機能は公式GA機能のサポートSLAの対象ではありません。 クロスクラスタ検索を実行するには、<remote_cluster>:<target>構文を使用してクラスタ名を指定します。ここで、<remote_cluster>はSQLカタログ(クラスタ)にマッピングされ、<target>はテーブル(インデックスまたはデータストリーム)にマッピングされます。<remote_cluster>はワイルドカード(*)をサポートし、<target>はインデックスパターンである可能性があります。

例えば:

Sql

  1. SELECT emp_no FROM "my*cluster:*emp" LIMIT 1;
  2. emp_no
  3. ---------------
  4. 10001

SQL LIKE表記

一般的なLIKEステートメント(必要に応じてエスケープを含む)は、1つの_または複数の%文字に基づいてワイルドカードパターンに一致させるためのものです。

再度SHOW TABLESコマンドを使用します:

Sql

  1. SHOW TABLES LIKE 'emp%';
  2. catalog | name | type | kind
  3. ---------------+---------------+----------+---------------
  4. javaRestTest |emp |TABLE |INDEX
  5. javaRestTest |employees |VIEW |ALIAS

このパターンは、empで始まるすべてのテーブルに一致します。

このコマンドはエスケープもサポートしています。例えば:

Sql

``````sql
SHOW TABLES LIKE ‘emp!%’ ESCAPE ‘!’;

catalog | name | type | kind
———————-+———————-+———————-+———————-
`<br><br>現在、emp%%によってエスケープされているため、テーブルに一致しないことに注意してください。これは、0文字以上に一致することを意味し、!によってエスケープされ、通常の文字になります。そして、emp%という名前のテーブルが存在しないため、空のテーブルが返されます。 <br><br>要するに、2つのタイプのパターンの違いは次のとおりです: <br><br> | | | | | --- | --- | --- | | **機能** | **マルチインデックス** | **SQLLIKE** | | **引用の種類** ||| | **含める** | はい | はい | | **除外** | はい | いいえ | | **列挙** | はい | いいえ | | **1文字パターン** | いいえ |_| | **複数文字パターン** ||%````` |
| *エスケープ
| いいえ | ESCAPE |

どちらを使用するかはあなた次第ですが、一貫性のためにクエリ全体で同じものを使用するようにしてください。

2つのパターン間のクエリタイプの引用はかなり似ているため("')、Elasticsearch SQLはSQL LIKEパターンのためにキーワードLIKE常に必要とします。