Tablestoreは、ランダムな主キー列と主キー以外の列に基づくクエリ、ブールクエリ、地理クエリ、全文検索、あいまいクエリ、プレフィックスクエリ、ネストされたクエリ、折りたたみ(重複排除)、並べ替え、すべて一致クエリ、集計など、以下の主要機能を提供します。ビジネス要件に基づいてこれらの機能を使用できます。検索インデックスの一部の機能は、特定のSQLステートメントと同等です。
主要機能
検索インデックスは、多次元データクエリと一般的な統計分析をサポートします。次の表は、検索インデックスの主要機能について説明しています。
機能 | 説明 | 参照 |
主キー列と主キー以外の列に基づくクエリ | 主キー列または主キー列のプレフィックスのみに基づくクエリは、一部のシナリオでは要件を満たすことができません。 主キー以外の列に基づいてデータをクエリする場合は、その列を検索インデックスに含め、主キー以外の列に基づいてクエリを実行できます。 | タームクエリなどの、検索インデックスによって提供されるクエリメソッドのドキュメント |
ブールクエリ | ブールクエリは、注文シナリオに適しています。注文シナリオでは、テーブルに数十のフィールドが含まれている場合があります。テーブルを作成するときに、クエリに必要なフィールドをどのように組み合わせるかを判断するのが難しい場合があります。必要なフィールドの組み合わせ方を決定できたとしても、数百種類の組み合わせが利用できる可能性があります。 リレーショナルデータベースサービスを使用する場合、数百のインデックスを作成する必要がある場合があります。さらに、特定の組み合わせに対して事前にインデックスが作成されていない場合、必要なデータをクエリすることはできません。 Tablestoreを使用して、必要となる可能性のあるすべてのフィールドを含む検索インデックスを作成し、クエリでこれらのフィールドを自由に組み合わせることができます。検索インデックスは、AND、OR、NOTなどの論理演算子もサポートしています。 | |
地理クエリ | モバイルデバイスの人気が高まるにつれ、地理的位置データの重要性が増しています。地理的位置データは、ソーシャルメディアアプリ、食品配達アプリ、スポーツアプリ、Internet of Vehicles(IoV)アプリなど、さまざまなアプリで使用されています。これらのアプリには、地理的位置データをサポートするクエリ機能が必要です。 検索インデックスは、次の地理的位置データに基づくクエリをサポートしています。
Tablestoreを使用すると、他のデータベースサービスや検索エンジンを使用せずに、これらの機能を使用して地理的位置データをクエリできます。 | |
全文検索 | 検索インデックスは、全文検索をサポートするためにデータをトークン化できます。検索インデックスを使用して、BM25ベースのキーワード関連性スコアに基づいてのみクエリ結果を並べ替えることができます。他の関連性スコアに基づいてクエリ結果を並べ替える場合は、検索システムを使用することをお勧めします。 検索インデックスは、単一単語トークン化、区切り文字トークン化、最小意味単位トークン化、最大意味単位トークン化、あいまいトークン化などのトークン化方法をサポートしています。要件に基づいてトークン化方法を選択できます。 クエリ出力で特定のキーワードを強調表示するには、強調表示機能を有効にします。 | |
KNNベクトル問合せ | 検索インデックスは、KNNベクトル問合せ機能を提供します。ベクトルを使用して近似最近傍探索を実行することにより、大規模データセットで最も類似したデータ項目を見つけることができます。この機能は、レコメンデーションシステム、画像とビデオの検索、自然言語処理(NLP)などのシナリオに適しています。 | |
あいまいクエリ | 検索インデックスは、ワイルドカードに基づくクエリをサポートしています。この機能は、リレーショナルデータベースのLIKE演算子に似ています。疑問符( | |
プレフィックスクエリ | 検索インデックスは、プレフィックスクエリをサポートしています。たとえば、プレフィックス | |
存在クエリ | 存在クエリは、NULLクエリまたはNULL値クエリとも呼ばれます。このタイプのクエリは、スパースデータで使用され、行の列が存在するかどうかを判断します。 | |
ネストされたクエリ | オンラインアプリケーション(タグ付き画像など)によって生成されるデータは、フラットな構造に加えて、複雑で多層的な構造を持つことがよくあります。たとえば、データベースに多数の画像が格納されており、各画像には家、車、人などの複数の要素があります。画像内の各要素には、一意の重みスコアがあります。スコアは、画像内の要素のサイズと位置に基づいて評価されます。したがって、各画像には複数のタグがあります。各タグには、名前と重みスコアがあります。ネストされたクエリを使用して、タグ条件に基づいてデータをクエリできます。画像タグはJSON形式で格納されます。例:
ネストされたクエリは、複数の層の論理関係を持つデータをクエリするために使用できます。これにより、複雑なデータのモデリングが大幅に容易になります。 JSONなどの複雑なデータ構造のネストされたフィールドの場合、強調表示機能を有効にして必要な情報を正確に特定することもできます。 | |
折りたたみ(重複排除) | 検索インデックスは、折りたたみ(重複排除)機能をサポートしています。折りたたみ(重複排除)機能を使用して、特定の列に基づいて結果セットを折りたたむことができます。これにより、指定されたタイプのデータがクエリ結果に1回だけ表示され、結果タイプの多様性が確保されます。たとえば、eコマースのシナリオで | |
並べ替え | Tablestoreは、データの主キーに基づく並べ替え機能を提供します。他のフィールドに基づいてデータを並べ替える場合は、検索インデックスの並べ替え機能を使用できます。 検索インデックスは、1つ以上の条件に基づいて昇順または降順での並べ替えをサポートしています。並べ替え操作は、検索インデックス内のすべてのデータに対してグローバルに実行されます。デフォルトでは、検索インデックスの返される結果は、データテーブルの主キーに基づいて並べ替えられます。 |
|
すべて一致クエリ | 検索インデックスを使用して、クエリ条件に一致する行の総数を返すことができます。この機能は、データ検証とデータ駆動型操作に適用されます。
| |
集計 | 検索インデックスを使用すると、集計操作を実行して、行の最大値、最小値、平均値、合計、カウント、個別カウント、パーセンタイル、ヒストグラム統計を取得できます。検索インデックスを使用して結果をグループ化することもできます。これにより、軽量の統計分析を実行できます。 |
SQLステートメントと検索インデックスの機能間のマッピング
検索インデックスの一部の機能には、同等のSQLステートメントがあります。次の表は、SQLステートメントと検索インデックスの機能間のマッピングについて説明しています。
SQL | 検索インデックス機能 | 参照 |
Show | API操作:DescribeSearchIndex | |
Select | パラメータ:ColumnsToGet | タームクエリなどの、検索インデックスによって提供されるクエリメソッドのドキュメント |
From | パラメータ:インデックス名 重要 単一列インデックスはサポートされています。複数列インデックスはサポートされていません。 | タームクエリなどの、検索インデックスによって提供されるクエリメソッドのドキュメント |
Where | クエリ:タームクエリなど、さまざまなクエリメソッド | タームクエリなどの、検索インデックスによって提供されるクエリメソッドのドキュメント |
Order by | パラメータ:sort | |
Limit | パラメータ:limit | |
Delete | API操作:クエリ後のDeleteRow |
|
Like | クエリ:WildcardQuery | |
And | パラメータ:operator = and | |
Or | パラメータ:operator = or | |
Not | クエリ:BoolQuery(mustNotQueries) | |
Between | クエリ:RangeQuery | |
Null | クエリ:ExistsQuery | |
In | クエリ:TermsQuery | |
Min | 集計:min | |
Max | 集計:max | |
Avg | 集計:avg | |
Count | 集計:count | |
Count(distinct) | 集計:distinctCount | |
Sum | 集計:sum | |
Group By | GroupBy |