Tablestore の多次元インデックスは、ワイルドカードクエリ、プレフィックスクエリ、サフィックスクエリをサポートし、さまざまなあいまい一致のシナリオに対応します。ビジネスニーズに最も適したクエリタイプを選択してください。
背景情報
あいまい検索は、名前、電話番号、注文番号の検索などのシナリオで一般的に使用されます。リレーショナルデータベースでは、この目的のために like 構文を使用します。Tablestore の多次元インデックスは、同等の機能を提供します。
クエリタイプ
多次元インデックスは、機能に基づいて 3 種類のあいまい検索クエリタイプを提供します:
-
ワイルドカードクエリ:このクエリは、従来のリレーショナルデータベースの
like構文に似ています。アスタリスク (*) と疑問符 (?) の 2 種類のワイルドカード文字をサポートしています。クエリパターンでは、アスタリスク (*) は任意の文字列を、疑問符 (?) は任意の 1 文字を表します。クエリパターンは、アスタリスク (*) または疑問符 (?) で始めることができます。たとえば、table*eのクエリはtablestoreに一致します。 -
プレフィックスクエリ:このクエリは、プレフィックスを指定してデータを検索します。たとえば、
H00で始まるすべての注文をクエリできます。 -
サフィックスクエリ:このクエリは、サフィックスを指定してデータを検索します。たとえば、
1234で終わるすべての携帯電話番号をクエリできます。
あいまい検索は、フィールドタイプと実装によって分類することもできます:
-
Keyword タイプ:文字列の一致に基づくあいまい検索:文字列を順次照合します。データ量が増加するにつれてパフォーマンスが低下します。ワイルドカードクエリとプレフィックスクエリをサポートします。大文字と小文字を区別します。最大フィールド長:4 KB。
-
FuzzyKeyword タイプ:あいまい検索に最適化:Keyword タイプよりも高速で安定しており、パフォーマンスはデータ量の影響をほとんど受けません。ワイルドカードクエリ、プレフィックスクエリ、サフィックスクエリをサポートします。大文字と小文字を区別します。最大フィールド長:2 KB。
-
Text タイプ:トークン化モード:FuzzyAnalyzer を使用することで、大文字と小文字の区別の制御など、より高い柔軟性が得られます。
*ALI*パターンでの トークンベースのワイルドカードクエリ のみをサポートします。FuzzyAnalyzer を使用した場合の最大フィールド長:1 KB。