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