検索インデックスは、転置インデックスと列のストアに基づいて、ビッグデータシナリオでの多次元データクエリと統計分析をサポートします。このトピックでは、Tablestore SDK for Go を使用して検索インデックス機能を使用する方法について説明します。
インデックスの管理
次の表に、検索インデックスでサポートされている管理操作を示します。
操作 | 説明 |
データテーブルの検索インデックスを作成します。 | |
テーブルに作成されている検索インデックスをクエリします。 | |
検索インデックスの生存時間( TTL )を更新します。 | |
検索インデックスの説明(検索インデックスのフィールドに関する情報と検索インデックスの構成を含む)をクエリします。 | |
不要になった検索インデックスを削除します。 | |
ビジネス要件に基づいて、検索インデックスの既存データを削除するか、データの保存期間を延長します。 |
データ型
Long、Double、Boolean、Keyword、Text、Date、Geopoint、Vector などの基本的なデータ型に加えて、検索インデックスは Array と Nested の 2 つの特別なデータ型をサポートします。詳細については、「データ型」をご参照ください。
データクエリ
次の表に、検索インデックスでサポートされているクエリタイプを示します。ビジネス要件に基づいてクエリタイプを選択します。
機能 | クエリタイプ | 説明 |
基本クエリ | このクエリは、テーブル内のすべての行と一致し、テーブル内の行の総数をクエリするか、複数のランダムな行を返します。 | |
このクエリは、完全に一致を使用してデータテーブルからデータを取得します。 term クエリは、文字列マッチングに基づくクエリに似ています。 | ||
このクエリでは、複数のキーワードを指定して、キーワードの少なくとも 1 つと一致する行を検索できます。列値がキーワードの少なくとも 1 つと一致する場合、データ行が返されます。 Terms クエリは、 SQL 文の IN 演算子と同じ方法で使用できます。 | ||
このクエリは、指定されたプレフィックスを含むデータをデータテーブルから取得します。 | ||
このクエリは、指定された範囲内にあるデータを取得します。 | ||
このクエリは、ワイルドカードを含む文字列と一致するデータを取得します。 | ||
このクエリは NULL クエリまたは NULL 値クエリとも呼ばれ、スパースデータで使用して、行の列が存在するかどうかを判断します。 | ||
このクエリは、特定の列に基づいて結果セットを折りたたみ、指定されたタイプのデータが返される結果に 1 回だけ表示されるようにすることで、結果タイプの多様性を確保します。 | ||
地理クエリは、円形範囲検索、四角形範囲検索、多角形範囲検索の 3 つのタイプに分類されます。
| ||
このクエリは、ネストされたフィールドの子行のデータを取得します。 | ||
データ処理 | 検索インデックスを作成するときにソート方法を事前に定義するか、検索インデックスを使用してデータをクエリするときにソート方法を指定できます。このようにして、クエリ条件を満たす行は、事前に定義または指定した順序に基づいて返されます。 応答に多数の行が含まれている場合は、limit パラメーターと offset パラメーターを構成するか、トークンを使用してデータを見つけることができます。 | |
集約操作を実行して、行の最小値、最大値、合計、平均、カウント、個別カウント、パーセンタイル統計、各グループの行を取得できます。また、集約操作を実行して、フィールド値、範囲、地理的な場所、フィルター、ヒストグラム、または日付ヒストグラム別に結果をグループ化し、ネストされたクエリを実行することもできます。複雑なクエリに対して複数の集約操作を実行できます。 | ||
サブクエリ条件の組み合わせに基づくクエリ | このクエリは、サブクエリの組み合わせに基づいてデータテーブルからデータを取得します。 Tablestore は、サブクエリと一致する行を返します。 | |
全文検索 | このクエリは、おおよそ一致を使用してデータテーブルからデータを取得します。 | |
このクエリは一致検索に似ていますが、フレーズ一致検索ではトークンの位置が評価される点が異なります。行は、行内のトークンの順序と位置が指定された順序と位置と一致する場合にのみ、クエリ条件を満たします。 | ||
ハイライトパラメーターを構成して、クエリ条件を満たす行のセグメント内のクエリ文字列をハイライト表示できます。 | ||
ベクトル検索 | k 近傍( KNN )ベクトル検索機能を使用して、ベクトルに基づいて近似最近傍検索を実行できます。このようにして、大規模なデータセットで、クエリするベクトルと最も類似性が高いデータ項目を見つけることができます。 |
データエクスポート
クエリ結果の順序に要件がない場合は、並列スキャン機能を使用してクエリ結果を効率的に取得できます。詳細については、「並列スキャンを実行する」をご参照ください。