このトピックでは、Tablestore SDK for Java を使用してデータをクエリする場合に、検索インデックスによって提供されるデータクエリ機能について説明します。データクエリ機能には、基本クエリ、ブール値クエリ、ソートとページング、集約、全文検索、および k 近傍 (KNN) ベクタークエリが含まれます。
基本クエリ
次の表に、検索インデックスでサポートされている基本クエリを示します。
クエリタイプ | 説明 |
このクエリは、テーブル内のすべての行と一致し、テーブル内の行の総数をクエリしたり、複数のランダムな行を返したりします。 | |
このクエリは、完全一致を使用してデータテーブルからデータを取得します。 term クエリは、文字列マッチングに基づくクエリに似ています。 | |
このクエリを使用すると、複数のキーワードを指定して、少なくとも 1 つのキーワードと一致する行を検索できます。列値が少なくとも 1 つのキーワードと一致する場合、データ行が返されます。 Terms クエリは、SQL 文の IN 演算子と同じ方法で使用できます。 | |
このクエリは、指定されたプレフィックスを含むデータをデータテーブルから取得します。 | |
このクエリは、指定されたサフィックスを含むデータをデータテーブルから取得します。 | |
このクエリは、ワイルドカード文字を含む文字列と一致するデータを取得します。 | |
このクエリは、指定された範囲内にあるデータをテーブルから取得します。 | |
このクエリは NULL クエリまたは NULL 値クエリとも呼ばれ、スパースデータで使用されて、行の列が存在するかどうかを判断します。 | |
このクエリは、特定の列に基づいて結果セットを折りたたみ、指定されたタイプのデータが返される結果に一度だけ表示されるようにすることで、結果タイプの多様性を確保します。 | |
地理空間クエリは、円形範囲クエリ、四角形範囲クエリ、および多角形範囲クエリに分類されます。
| |
このクエリは、ネストされたフィールドの子行のデータを取得します。 |
ブール値クエリ
ブール値クエリは、サブクエリの組み合わせに基づいてデータテーブル内のデータを取得します。 Tablestore は、サブクエリの条件を満たす行を返します。 詳細については、「ブール値クエリ」をご参照ください。
ソートとページング
検索インデックスを作成するときにソート方法を事前に定義したり、検索インデックスを使用してデータをクエリするときにソート方法を指定したりできます。このようにして、クエリ条件を満たす行は、事前に定義または指定した順序に基づいて返されます。応答に多数の行が含まれている場合は、limit パラメーターと offset パラメーターを設定するか、トークンを使用してデータを特定できます。 詳細については、「ソートとページングの実行」をご参照ください。
集約
集約操作を実行して、行の最小値、最大値、合計、平均値、カウントと個別カウント、およびパーセンタイル統計を取得できます。また、集約操作を実行して、フィールド値、範囲、地理的位置、フィルター、ヒストグラム、または日付ヒストグラム別に結果をグループ化し、ネストされたクエリを実行し、各グループの集約操作の結果から取得された行をクエリすることもできます。複雑なクエリに対して複数の集約操作を実行できます。 詳細については、「集約」をご参照ください。
全文検索
全文検索を使用して、クエリ文字列を含むデータ行をテーブルからすばやく見つけることができます。全文検索は、検索エンジン、データベース、ドキュメント管理システムなどの分野で広く使用されています。ハイライトパラメーターを設定して、クエリ条件を満たす行のセグメント内のクエリ文字列をハイライト表示できます。 詳細については、「全文検索」をご参照ください。
KNN ベクタークエリ
KNN ベクタークエリ機能を使用して、ベクターに基づいて近似最近傍検索を実行できます。このようにして、大規模なデータセットでクエリするベクターと最も類似性が高いデータ項目を見つけることができます。 詳細については、「KNN ベクタークエリ」をご参照ください。