インデックスパターン
Elasticsearch SQLは、複数のインデックスまたはテーブルに一致させるための2種類のパターンをサポートしています:
Elasticsearchマルチターゲット構文
インデックスを列挙するためのElasticsearchの表記法、含めるまたは除外するためのマルチターゲット構文は、引用符で囲まれているか、テーブル識別子としてエスケープされている限りサポートされています。
例えば:
Sql
SHOW TABLES "*,-l*";
catalog | name | type | kind
---------------+---------------+----------+---------------
javaRestTest |emp |TABLE |INDEX
javaRestTest |employees |VIEW |ALIAS
パターンが二重引用符で囲まれていることに注意してください "
。これは*
を列挙しており、すべてのインデックスを意味しますが、-
のためにl
で始まるすべてのインデックスを除外します。この表記法は非常に便利で強力であり、ターゲットの命名規則に応じて、含めることと除外することの両方を可能にします。
同様のパターンを使用して、複数のインデックスまたはテーブルをクエリすることもできます。
例えば:
Sql
SELECT emp_no FROM "e*p" LIMIT 1;
emp_no
---------------
10001
すべての解決された具体的なテーブルが正確に同じマッピングを持つ必要があるという制限があります。
[プレビュー] この機能は技術プレビュー中であり、将来のリリースで変更または削除される可能性があります。Elasticは問題を修正するために取り組みますが、技術プレビューの機能は公式GA機能のサポートSLAの対象ではありません。 クロスクラスタ検索を実行するには、<remote_cluster>:<target>
構文を使用してクラスタ名を指定します。ここで、<remote_cluster>
はSQLカタログ(クラスタ)にマッピングされ、<target>
はテーブル(インデックスまたはデータストリーム)にマッピングされます。<remote_cluster>
はワイルドカード(*
)をサポートし、<target>
はインデックスパターンである可能性があります。
例えば:
Sql
SELECT emp_no FROM "my*cluster:*emp" LIMIT 1;
emp_no
---------------
10001
SQL LIKE表記
一般的なLIKE
ステートメント(必要に応じてエスケープを含む)は、1つの_
または複数の%
文字に基づいてワイルドカードパターンに一致させるためのものです。
再度SHOW TABLES
コマンドを使用します:
Sql
SHOW TABLES LIKE 'emp%';
catalog | name | type | kind
---------------+---------------+----------+---------------
javaRestTest |emp |TABLE |INDEX
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>
| | | |
| --- | --- | --- |
| **機能** | **マルチインデックス** | **SQL
LIKE** |
| **引用の種類** |
“|
‘|
| **含める** | はい | はい |
| **除外** | はい | いいえ |
| **列挙** | はい | いいえ |
| **1文字パターン** | いいえ |
_|
| **複数文字パターン** |
|
%````` |
| *エスケープ | いいえ | ESCAPE
|
どちらを使用するかはあなた次第ですが、一貫性のためにクエリ全体で同じものを使用するようにしてください。
2つのパターン間のクエリタイプの引用はかなり似ているため("
対'
)、Elasticsearch SQLはSQL LIKE
パターンのためにキーワードLIKE
を常に必要とします。