背景情報
OpenSearch にアップロードするデータは、まずオフラインデータテーブルに保存されます。データのアップロードを容易にするために、OpenSearch では、ビジネス要件に基づいて複数のフィールドを持つデータテーブルを作成し、データ処理プラグインを提供することができます。複数のデータテーブルを作成する場合は、テーブルの結合に使用するフィールドを指定する必要があります。複数のデータテーブルのデータが処理された後、テーブルが結合されてインデックステーブルが形成されます。インデックステーブルは検索属性を定義し、検索エンジンがインデックスを構築してデータを検索するために使用できます。
データテーブルのフィールド
データテーブルを使用して、OpenSearch にデータをインポートできます。各データ処理プラグインは、特定のタイプのフィールドのみを処理できます。フィールド値の制限の詳細については、「制限」トピックの「フィールドの制限」セクションを参照してください (制限)。フィールド値が指定された値の範囲内にない場合、オーバーフローエラーが発生するか、値が切り捨てられます。正しいフィールドタイプを選択する必要があります。
フィールドタイプ | 説明 |
INT | 64 ビット整数。 |
INT_ARRAY | 64 ビット整数配列。 |
FLOAT | 浮動小数点数。 |
FLOAT_ARRAY | 浮動小数点数配列。 |
DOUBLE | 浮動小数点数。 |
DOUBLE_ARRAY | 浮動小数点数配列。 |
LITERAL | 完全一致のみをサポートする文字列定数。 |
LITERAL_ARRAY | 文字列定数配列。文字列定数配列の単一の要素は、完全一致のみをサポートします。 |
SHORT_TEXT | 短いテキスト。このタイプの値は、長さが 100 バイトを超えることはできません。このタイプのフィールドは、複数の分析方法をサポートしています。 |
TEXT | 長いテキスト。このタイプのフィールドは、複数の分析方法をサポートしています。 |
TIMESTAMP | 64 ビット符号なし整数。このタイプのフィールドは、タイムスタンプを示します。 |
GEO_POINT | 文字列定数。このタイプのフィールドは、「緯度値 経度値」形式の緯度と経度のペアを示します。 |
予約フィールドに関する注意事項:
次のフィールド名は予約されているため、独自のフィールドの名前として使用できません: service_id、ops_app_name、inter_timestamp、index_name、pk、ops_version、ha_reserved_timestamp、summary。
配列タイプのフィールドに関する注意事項:
アプリケーションで配列タイプのフィールドを作成した後、そのフィールドをデータソースの VARCHAR または STRING タイプのフィールドにマッピングできます。さらに、データ処理プラグインを使用してフィールドを処理することもできます。詳細については、データ処理プラグインの使用 を参照してください。
OpenSearch API または OpenSearch SDK を使用して配列タイプのフィールドをアップロードする場合は、フィールドを文字列ではなく配列としてアップロードします。例: String[] literal_array = {"Alibaba Cloud","OpenSearch"};
タイムスタンプタイプのフィールドに関する注意事項:
INT タイプと TIMESTAMP タイプのフィールドは、データソースの DATETIME タイプまたは TIMESTAMP タイプのフィールドにマッピングできます。フィールド値はミリ秒数に自動的に変換されます。範囲関数を使用して、時間範囲で検索結果を取得できます。詳細については、範囲検索 を参照してください。
サポートされているデータソースのフィールドタイプ
データソース | サポートされているフィールドタイプ |
ApsaraDB RDS | TINYINT、SMALLINT、INTEGER、BIGINT、FLOAT、REAL、DOUBLE、NUMERIC、DECIMAL、TIME、DATE、TIMESTAMP、VARCHAR |
PolarDB | TINYINT、SMALLINT、INTEGER、BIGINT、FLOAT、REAL、DOUBLE、NUMERIC、DECIMAL、TIME、DATE、TIMESTAMP、VARCHAR |
MaxCompute | BIGINT、DOUBLE、BOOLEAN、DATETIME、STRING、DECIMAL、MAP、ARRAY、TINYINT、SMALLINT、INT、FLOAT、CHAR、VARCHAR、DATE、TIMESTAMP、BINARY、INTERVAL_DAY_TIME、INTERVAL_YEAR_MONTH、STRUCT |
OpenSearch のフィールドタイプとデータソースのフィールドタイプのマッピング
OpenSearch のフィールドタイプ | ApsaraDB RDS のフィールドタイプ | PolarDB のフィールドタイプ | MaxCompute のフィールドタイプ |
INT | BIGINT、TINYINT、SMALLINT、INTEGER | BIGINT、TINYINT、SMALLINT、INTEGER | BIGINT、TINYINT、SMALLINT、INT |
INT_ARRAY | VARCHAR や STRING などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 | VARCHAR や STRING などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 | VARCHAR や STRING などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 |
FLOAT | FLOAT、NUMERIC、DECIMAL | FLOAT、NUMERIC、DECIMAL | FLOAT、DECIMAL |
FLOAT_ARRAY | VARCHAR や STRING などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 | VARCHAR や STRING などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 | VARCHAR や STRING などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 |
DOUBLE | DOUBLE、NUMERIC、DECIMAL | DOUBLE、NUMERIC、DECIMAL | DOUBLE、DECIMAL |
DOUBLE_ARRAY | VARCHAR などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 | VARCHAR などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 | VARCHAR や STRING などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 |
LITERAL | VARCHAR などの文字列型。 | VARCHAR などの文字列型。 | VARCHAR や STRING などの文字列型。 |
LITERAL_ARRAY | VARCHAR などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 | VARCHAR などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 | VARCHAR や STRING などの文字列型。このフィールドタイプは、データ処理プラグイン MultiValueSpliter を使用して変換する必要があります。 |
SHORT_TEXT | VARCHAR などの文字列型。 | VARCHAR などの文字列型。 | VARCHAR や STRING などの文字列型。 |
TEXT | VARCHAR などの文字列型。 | VARCHAR などの文字列型。 | VARCHAR や STRING などの文字列型。 |
TIMESTAMP | DATETIME、TIMESTAMP | DATETIME、TIMESTAMP | DATETIME、TIMESTAMP |
GEO_POINT | VARCHAR などの文字列型。 | VARCHAR などの文字列型。 | 経度 緯度 の形式の VARCHAR や STRING などの文字列。経度は経度を、緯度は緯度を指定します。経度と緯度の値はどちらも DOUBLE 型で、スペース文字で区切られています。経度パラメータの有効な値: [-180, 180]。緯度パラメータの有効な値: [-90,90]。 |
使用上の注意
データソースのフィールドが FLOAT 型または DOUBLE 型の場合、フィールド型を DECIMAL に変更することをお勧めします。そうしないと、データの精度が損なわれる可能性があります。
アプリケーションスキーマの作成
OpenSearch では、次のいずれかの方法でアプリケーションスキーマを作成できます。
データソースを設定します。詳細については、ApsaraDB RDS for MySQL データソースの設定、MaxCompute データソースの設定、PolarDB for MySQL データソースの設定 を参照してください。
アプリケーションスキーマを手動で作成します。
テンプレートを使用します。詳細については、アプリケーションの移行 を参照してください。
ファイルをアップロードします。詳細については、ファイルをアップロードしてアプリケーションスキーマを作成する を参照してください。