検索インデックスを使用する前に、検索インデックスでサポートされているデータ型を理解する必要があります。また、検索インデックスでサポートされているデータ型と、検索インデックスが作成されるデータテーブルでサポートされているデータ型の間のマッピングも理解する必要があります。
サポートされているデータ型
検索インデックスは、Long、Double、Boolean、Keyword、Text、Date、Geopoint、および Vector の基本データ型、Array および Nested の特殊データ型、そして仮想カラムをサポートしています。
Tablestore SDK for Java V5.13.9 以降では、検索インデックスの Date データ型がサポートされています。検索インデックスで Date データ型を使用するには、Tablestore SDK for Java V5.13.9 以降を取得していることを確認してください。Tablestore SDK for Java のバージョンの詳細については、Tablestore SDK for Java のバージョン履歴を参照してください。
基本データ型
検索インデックスは、Long、Double、Boolean、Keyword、Text、Date、Geopoint、および Vector の基本データ型をサポートしています。次の表に、基本データ型を示します。
基本データ型 | 説明 |
Long | 64 ビット長整数。 |
Double | 64 ビット倍精度浮動小数点数。 |
Boolean | ブール値。 |
Keyword | トークン化できない文字列。 |
Text | トークン化できる文字列またはテキスト。詳細については、トークン化を参照してください。 |
Date | 日付データ型。日付型のデータの形式を指定できます。詳細については、日付データ型を参照してください。 |
Geopoint |
|
Vector | ベクトル型。ベクトル型のフィールドの値は、Float32 配列形式の文字列です。配列の長さは、フィールドの次元数と同じです。たとえば、ベクトル文字列 |
Array 型と Nested 型
Long、Double、Boolean、Keyword、Text、Date、Geopoint、Vector などの基本データ型に加えて、検索インデックスは 2 つの特殊データ型、Array と Nested をサポートしています。Array データ型は、同じ型のデータのコレクションを格納するのに適しています。Nested データ型は JSON データ型に似ており、階層構造を持つデータを格納するのに適しています。詳細については、Array 型と Nested 型を参照してください。
Array 型
Nested 型
仮想カラム
検索インデックスの仮想カラム機能を使用すると、Tablestore テーブルのストレージスキーマとデータを変更することなく、新しいフィールドと新しいフィールド型のデータをクエリできます。詳細については、仮想カラムを参照してください。
仮想カラム機能を使用すると、検索インデックスを作成するときに、テーブルのカラムを検索インデックスの仮想カラムにマッピングできます。仮想カラムの型は、テーブルのカラムの型と異なる場合があります。これにより、テーブルスキーマとデータを変更せずにカラムを作成できます。新しいカラムは、クエリを高速化するために使用したり、異なるトークン化方法で構成したりできます。
テーブルの同じフィールドにマッピングされている Text フィールドに異なるトークン化方法を構成できます。
1 つの String カラムを検索インデックスの複数の Text カラムにマッピングできます。異なる Text カラムは、さまざまなビジネス要件を満たすために異なるトークン化方法を使用します。
クエリの高速化
データをクレンジングしたり、テーブルスキーマを再作成する必要はありません。テーブルの必要なカラムを検索インデックスのカラムにマッピングするだけで済みます。カラム型は、テーブルと検索インデックスで異なる場合があります。たとえば、数値型を Keyword 型にマッピングして用語クエリの パフォーマンスを向上させ、String 型を数値型にマッピングして範囲クエリの パフォーマンスを向上させることができます。
データ型のマッピング
検索インデックスのフィールドの値は、検索インデックスが作成されるデータテーブルで同じ名前を持つフィールドの値です。2 つの値のデータ型は一致する必要があります。次の表に、一致ルールを示します。
検索インデックスのフィールドデータ型 | データテーブルのフィールドデータ型 |
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 |
Geopoint | String |
Geopoint Array | String |
Vector | String |
Nested | String |