プレフィックスクエリを実行して、インデックス内のデータをクエリできます。プレフィックスクエリを実行するときは、プレフィックスを指定する必要があります。
説明
プレフィックスクエリは、特定の文字列で始まるデータをクエリするために使用されます。プレフィックスクエリを実行するときは、プレフィックスを指定する必要があります。
プレフィックスクエリを使用して、Keyword、FuzzyKeyword、およびTextデータ型のデータをクエリできます。
Keyword:基本的なStringデータ型。このデータ型は、中規模または大規模なデータに対するプレフィックスクエリなどのあいまいクエリのパフォーマンスが低くなります。パフォーマンスはデータサイズが大きくなるにつれて低下します。
FuzzyKeyword:プレフィックスクエリなどのあいまいクエリ用に最適化されたデータ型。このデータ型は、任意のサイズのデータに対するプレフィックスクエリなどのあいまいクエリに対して、高くて安定したパフォーマンスを提供します。ほとんどの場合、クエリのパフォーマンスはデータサイズが大きくなっても低下しません。
Text:プレフィックス条件の照合に使用される列がText列の場合、列はトークン化されます。少なくとも1つのトークンに指定されたプレフィックスが含まれている場合、行はクエリ条件を満たします。トークン化の不確実性のため、ほとんどの場合、プレフィックスクエリはText型のデータのクエリには使用されません。このデータ型は互換性のためにのみサポートされています。このデータ型は慎重に使用してください。
API操作
SearchまたはParallelScan操作を呼び出し、クエリタイプをPrefixQueryに設定して、プレフィックスクエリを実行できます。
パラメーター
パラメーター | 説明 |
query | クエリのタイプ。クエリパラメーターをPrefixQueryに設定します。 |
fieldName | クエリする列の名前。 |
prefix | プレフィックス。 プレフィックス条件の照合に使用される列がText列の場合、列はトークン化されます。少なくとも1つのトークンに指定されたプレフィックスが含まれている場合、行はクエリ条件を満たします。 |
getTotalCount | クエリ条件を満たす行の総数を返すかどうかを指定します。デフォルト値:false。 このパラメーターをtrueに設定すると、クエリのパフォーマンスが低下します。 |
weight | BM25ベースのキーワード関連性スコアを計算するために、クエリする列に割り当てる重み。このパラメーターは、全文検索シナリオで使用されます。重みが大きいほど、列のBM25ベースのキーワード関連性スコアが高くなります。このパラメーターの値は正の浮動小数点数です。 このパラメーターは、返される行の数には影響しません。ただし、このパラメーターは、クエリ結果のBM25ベースのキーワード関連性スコアに影響します。 |
tableName | データテーブルの名前。 |
indexName | 検索インデックスの名前。 |
columnsToGet | クエリ条件を満たす各行のすべての列を返すかどうかを指定します。このパラメーターには、returnAllおよびcolumnsパラメーターを設定できます。 returnAllパラメーターのデフォルト値はfalseで、すべての列が返されるわけではないことを指定します。この場合、columnsパラメーターを使用して、返す列を指定できます。返す列を指定しない場合は、主キー列のみが返されます。 returnAllパラメーターをtrueに設定すると、すべての列が返されます。 |
方法
Tablestoreコンソール、Tablestore CLI、またはTablestore SDKを使用して、プレフィックスクエリを実行できます。プレフィックスクエリを実行する前に、次の準備が整っていることを確認してください。
FuzzyKeyword型のデータに対してプレフィックスクエリを実行するには、Tablestore SDKのみを使用できます。
Tablestoreで操作を実行する権限を持つAlibaba CloudアカウントまたはRAMユーザーを持っている。RAMユーザーにTablestore操作権限を付与する方法については、RAMポリシーを使用してRAMユーザーに権限を付与するを参照してください。
Tablestore SDKまたはTablestore CLIを使用してクエリを実行する場合、Alibaba CloudアカウントまたはRAMユーザーのAccessKeyペアが作成されます。詳細については、AccessKeyペアを作成するを参照してください。
データテーブルが作成されている。詳細については、テーブルの操作を参照してください。
データテーブルの検索インデックスが作成されている。詳細については、検索インデックスを作成するを参照してください。
Tablestore SDKを使用してクエリを実行する場合、OTSClientインスタンスが初期化されている。詳細については、OTSClientインスタンスを初期化するを参照してください。
Tablestore CLIを使用してクエリを実行する場合、Tablestore CLIがダウンロードされて起動され、アクセスするインスタンスとデータテーブルに関する情報が設定されている。詳細については、Tablestore CLIをダウンロードする、Tablestore CLIを起動してアクセス情報を設定する、およびデータテーブルの操作を参照してください。
課金ルール
検索インデックスを使用してデータをクエリする場合、消費される読み取りスループットに対して課金されます。詳細については、検索インデックスの課金対象項目を参照してください。
FAQ
参考資料
検索インデックスを使用してデータをクエリする場合、次のクエリメソッドを使用できます。タームクエリ、タームズクエリ、すべて一致クエリ、一致クエリ、一致フレーズクエリ、プレフィックスクエリ、範囲クエリ、ワイルドカードクエリ、あいまいクエリ、ブールクエリ、ジオクエリ、ネストされたクエリ、KNNベクトル検索、存在クエリ。ビジネス要件に基づいてクエリメソッドを選択し、複数のディメンションからデータをクエリできます。
並べ替え機能とページング機能を使用して、クエリ条件を満たす行を並べ替えたりページ分割したりできます。詳細については、並べ替えとページングの実行を参照してください。
折りたたみ(重複排除)機能を使用して、特定の列に基づいて結果セットを折りたたむことができます。これにより、指定されたタイプのデータはクエリ結果に1回だけ表示されます。詳細については、折りたたみ(重複排除)を参照してください。
データテーブルのデータを分析する場合は、Search操作の集計機能を使用するか、SQLステートメントを実行できます。たとえば、最小値、最大値、合計、行の総数などを取得できます。詳細については、集計とSQLクエリを参照してください。
行を並べ替えることなく、クエリ条件を満たすすべての行を取得する場合は、ParallelScan操作とComputeSplits操作を呼び出して並列スキャン機能を使用できます。詳細については、並列スキャンを参照してください。