大量または自動化を必要とする本番ワークロードでは、API または SDK を使用して OpenSearch アプリケーションにデータをインポートします。OpenSearch コンソールはアップロードあたり最大 2 MB のファイルアップロードをサポートしていますが、これは検索テストには十分なものの、数千のレコードをインポートしたり、スケジュールされたパイプラインを実行したりする必要がある場合には非現実的です。API および SDK のインポートの使用制限については、使用制限をご参照ください。
フィールド型のマッピング
API または SDK を使用してデータをインポートする前に、ソースデータの型を対応する OpenSearch のフィールド型にマッピングします。
| OpenSearch のフィールド型 | API のデータ型 |
|---|---|
| INT | int、long |
| INT_ARRAY | int[]、long[] |
| FLOAT | float |
| FLOAT_ARRAY | float[] |
| DOUBLE | double |
| DOUBLE_ARRAY | double[] |
| LITERAL | string |
| LITERAL_ARRAY | string[] |
| SHORT_TEXT | string |
| TEXT | string |
| TIMESTAMP | long |
| GEO_POINT | string(フォーマット:lon lat)。lon および lat はともに DOUBLE 型で、半角スペースで区切ります。lon の有効値範囲は -180 ~ 180、lat の有効値範囲は -90 ~ 90 です。 |
制約事項およびデータ形式の要件
データソースプラグインはサポートされていません。 OpenSearch アプリケーションにデータをインポートする前に、データを連結および前処理してください。
ARRAY 型のデータは、文字列ではなく配列として送信してください。 次の Java の例は、LITERAL_ARRAY 型のフィールドに対する正しいフォーマットを示しています。
// ドキュメント 2 のデータを格納するための Map オブジェクト doc2 を作成します。
Map<String,Object> doc2 = Maps.newLinkedHashMap();
doc2.put("id", 1);
String[] literal_arr2 = {"要素 1", "要素 2"};
doc2.put("literal_arr", literal_arr2);配列型の値を文字列として渡すと、インポートエラーが発生します。
次のステップ
データの処理およびインポートに関する詳細な手順については、以下をご参照ください。
データの処理(開発ガイド内)
Java 用 SDK: データをコミットするデモコード および データをプッシュするデモコード
PHP 用 SDK: データをプッシュするデモコードおよびデータをプッシュし、検索機能を実装するデモコード
Go 向け SDK: 行動データのプッシュ用デモコード および データのプッシュ用デモコード