OpenSearch では、API オペレーションの呼び出し、OpenSearch SDK の使用、またはコンソールを使用してデータをインポートできます。既存の PolarDB データベースまたは Apsara RDS データベースから OpenSearch にデータを同期することもできます。API オペレーションまたは OpenSearch SDK を使用してデータをアップロードする場合は、関連トピックを参照してください。この場合、このトピックで説明されているデータ処理プラグインを使用することはできません。クラウド内のデータソースを使用して OpenSearch にデータを同期する場合は、コンソールでデータソースに関する情報を設定する必要があります。OpenSearch は、単純なデータ変換操作を実行するためのいくつかのデータ処理プラグインを提供しています。OpenSearch テーブルとソーステーブル間のフィールドマッピングを設定する際に、データ処理プラグインを使用できます。API オペレーションを使用してデータをアップロードする場合、データ処理プラグインを使用することはできず、アップロードする前に自分でデータを処理する必要があります。
データベースとテーブルのシャーディングの場合、OpenSearch テーブルを ApsaraDB RDS または PolarDB データソースの複数のテーブルに関連付けることができます。ただし、OpenSearch テーブルは 1 つの MaxCompute ソーステーブルにのみ関連付けることができます。複数の MaxCompute ソーステーブルからデータを同期する必要がある場合は、テーブルを結合して 1 つのテーブルを作成してから、そのテーブルをアップロードします。
データ処理プラグイン
特定の検索機能を使用するには、特定のフィールドタイプを設定する必要があります。たとえば、次の表に示すプラグインを使用して、他のタイプのフィールドを配列タイプのフィールドに変換する必要があります。そうしないと、フィールドを参照できません。
注: プラグインは、アプリケーションスキーマを定義するときではなく、アプリケーションのデータソースを設定するときに設定できます。プラグインは、データソースが設定された後にのみ設定できます。
プラグイン | 説明 | 例 |
JsonKeyValueExtractor | このプラグインは、JSON 形式のソースフィールドから指定されたキー値を抽出します。抽出されたキー値は、デスティネーションテーブルフィールドの名前として使用されます。指定されたキーの値のみを抽出できます。 | {"title":"コンテンツ","body":"コンテンツ"} から title キーの値が抽出されます。抽出された値が JSON 配列形式の場合、値は配列タイプのフィールド値に変換されます。抽出された値のタイプがデスティネーションテーブルフィールドのタイプと一致することを確認してください。一致しない場合、抽出された値は失われます。上記の JSON 配列形式は、OpenSearch で定義されている JSON 配列形式を指します。LITERAL_ARRAY タイプのフィールドの例: {"tags":["a","b","c"]}。INT_ARRAY タイプのフィールドの例: {"tags":[1,2,3]}。 |
MultiValueSpliter | このプラグインは、区切り文字を使用してソースフィールドの値を複数の値に分割します。値は、対応するデスティネーションフィールドの配列要素として使用されます。デスティネーションフィールドは配列タイプである必要があります。印刷不可能な文字を区切り文字として使用する場合は、\u001D などの Unicode 文字を使用して印刷不可能な文字を識別する必要があります。 | ソースフィールドの値は 1,2,3 です。区切り文字を指定するときにコンマ (,) を入力できます。 |
KeyValueExtractor | このプラグインは、キーと値のペアであるソースフィールドから指定されたキー値を抽出します。抽出されたキー値は、デスティネーションテーブルフィールドの値として使用されます。指定されたキーの値のみを抽出できます。区切り文字は必要ありません。 | key1:value1,value2;key2:value3 のフィールドの場合、キーは key1 と key2、キーと値のペアはセミコロン (;) で区切られ、単一のキーと値のペア内のキーと値はコロン (:) で区切られ、値はコンマ (,) で区切られます。区切り文字を使用して抽出された値を区切る場合、値は配列タイプのフィールド値に変換されます。抽出された値のタイプがデスティネーションテーブルフィールドのタイプと一致することを確認してください。一致しない場合、抽出された値は失われます。同じキーが 2 つ存在する場合、2 番目のキーの値のみが抽出されます。 |
StringCatenateExtractor | このプラグインは、指定されたフィールドの値を特定の順序で文字列に連結します。このプラグインは INT タイプのフィールドを連結できません。LITERAL タイプのフィールドを使用することをお勧めします。複数のフィールドはコンマ (,) で区切ります。フィールドはデスティネーションテーブルフィールドからのものである必要があります。 | このプラグインを使用して、field1 フィールドと field2 フィールドをアンダースコア (_) を使用して新しいフィールドに連結できます。また、システム変数 $table から現在のテーブルの名前を取得することもできます。$table は、テーブルシャーディングワイルドカードが設定されている場合にのみ表示されます。 |
HTMLTagRemover | このプラグインは、ソースフィールドの値から HTML タグを削除します。その後、現在のフィールドの値は HTML タグのない値に置き換えられます。 | ソースフィールドの値は <div id="copyright">OpenSearch</div> です。このプラグインを使用して HTML タグを削除すると、フィールドの値は OpenSearch として解析されます。 |
詳細については、MultiValueSpliter プラグインの設定を参照してください。