多次元インデックスを使用する前に、サポートされているデータの型と、これらの型とデータテーブル内のデータの型とのマッピングを理解する必要があります。
データ型の説明
多次元インデックスは、Long、Double、Boolean、Keyword、Text、Date、IP、Geopoint、Vector、JSON などの基本データ型を提供します。また、配列型、ネスト型、仮想カラムなどの特殊な型も提供します。
多次元インデックスの Date 型は、Tablestore Java ソフトウェア開発キット (SDK) 5.13.9 以降でサポートされています。多次元インデックスの Date 型を使用するには、正しい Java SDK バージョンを使用していることを確認してください。Java SDK のリリース履歴の詳細については、「Java SDK のリリース履歴」をご参照ください。
基本データ型
多次元インデックスは、Long、Double、Boolean、Keyword、Text、Date、IP、Geopoint、Vector、JSON などの基本データ型を提供します。次の表に、これらのデータ型について説明します。
基本データ型 | 説明 |
Long | 64 ビットの long 型整数です。 |
Double | 64 ビットの倍精度浮動小数点数です。 |
Boolean | ブール値です。 |
Keyword | トークン化されていない文字列です。 |
FuzzyKeyword | パフォーマンス専有型のあいまいクエリをサポートする文字列です。 |
Text | トークン化された文字列またはテキストです。 |
Date | カスタムの日付フォーマットをサポートする日付と時刻の型です。 |
IP | IPv4 および IPv6 フォーマットの IP アドレスをサポートするIP 型です。 |
Geopoint | 位置ポイントの座標情報です。フォーマットは |
Vector | ベクター型です。フォーマットは Float32 配列の文字列です。配列の長さはフィールドのディメンションと等しくなります。たとえば、ベクター文字列 |
OBJECT および NESTED インデックスタイプをサポートするJSON 型です。 |
配列型とネスト型
Long、Double、Boolean、Keyword、Text、Date、Geopoint、Vector などの基本データ型に加えて、多次元インデックスは配列型とネスト型という 2 つの特殊な型も提供します。配列型は、同じ型の一連のデータを格納するのに適しています。ネスト型は、JSON に似た階層構造を持つデータを格納するのに適しています。詳細については、「配列型とネスト型」をご参照ください。
配列型
ネスト型
仮想カラム
Tablestore のストレージ構造とデータを変更せずに、新しいデータ型で新しいフィールドをクエリするには、多次元インデックスで仮想カラムを使用します。詳細については、「仮想カラム」をご参照ください。
仮想カラム機能を使用すると、インデックス作成時にテーブルの列を多次元インデックスの仮想カラムにマッピングできます。新しい仮想カラムの型は、テーブル内の元の列の型とは異なる場合があります。これにより、テーブルのスキーマとデータを変更せずに新しい列を作成できます。新しい列は、クエリを高速化したり、別のトークナイザーを使用したりするために使用できます。
テーブル内の同じフィールドにマッピングされている Text フィールドに対して、異なるトークン化メソッドを設定できます。
1 つの String 列を多次元インデックスの複数の Text 列にマッピングできます。異なる Text 列は、さまざまなビジネス要件を満たすために異なるトークン化メソッドを使用します。
クエリの高速化
データをクレンジングしたり、テーブルスキーマを再作成したりする必要はありません。必要なテーブルの列を多次元インデックスの列にマッピングするだけで済みます。列の型は、テーブルと多次元インデックスで異なる場合があります。たとえば、数値型を Keyword 型にマッピングして term クエリのパフォーマンスを向上させたり、String 型を数値型にマッピングして範囲クエリのパフォーマンスを向上させたりします。
データ型のマッピング
多次元インデックス内のフィールドの値は、データテーブル内の対応するフィールドの値から派生します。これらのフィールドのデータ型は一致する必要があります。次の表に、多次元インデックスとデータテーブルのフィールドデータ型のマッピングについて説明します。
多次元インデックスフィールドのデータ型 | データテーブルフィールドのデータ型 |
Long | Integer |
Long Array | String |
Double | Double |
Double Array | String |
Boolean | Boolean |
Boolean Array | String |
Keyword | String |
Keyword Array | String |
Text | String |
Date | Integer, String |
Date Array | String |
IP | String |
IP Array | String |
Geopoint | String |
Geopoint Array | String |
Vector | String |
Nested | String |
JSON | String |