すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:データソースプラグインの概要

最終更新日:Apr 02, 2026

データソースから OpenSearch にデータを同期する際、ソースのフィールド値はインデックス作成前に変換が必要になる場合があります。たとえば、カンマ区切り文字列を配列に分割したり、HTMLタグを除去したりするケースです。データ処理プラグインは、データ同期時にこれらの変換を自動的に処理するため、OpenSearch の外部でデータを前処理する必要はありません。

重要

データ処理プラグインは、構成済みのデータソースを介してデータを同期する場合にのみ利用可能です。API オペレーションまたは OpenSearch SDK を介してデータをアップロードする場合は、アップロード前にデータを処理してください。

前提条件

開始する前に、以下を確認してください。

  • ご利用の OpenSearch アプリケーション用に構成済みのデータソース

  • ソーステーブルと OpenSearch テーブル間のフィールドマッピングの定義

説明

プラグインは、データソースを設定する際に構成し、アプリケーションスキーマを定義する際には構成しません。プラグインは、データソースが構成された後にのみ利用可能です。

データソースの制約

プラグインを構成する前に、以下の制約に注意してください。

  • ApsaraDB RDS および PolarDB: 1つの OpenSearch テーブルを複数のソーステーブルに関連付けることができます (データベースシャーディングとテーブルシャーディングをサポート)。

  • MaxCompute: 1つの OpenSearch テーブルは、1つの MaxCompute ソーステーブルのみに関連付けることができます。複数の MaxCompute ソーステーブルから同期するには、まずそれらを単一テーブルに結合してください。

利用可能なプラグイン

OpenSearch は、同期中のフィールド変換のために5つのプラグインを提供します。

プラグイン変換タイプ機能
JsonKeyValueExtractorJSON抽出JSON形式のソースフィールドから、指定されたキーの値を抽出します。
MultiValueSpliter値の分割デリミタを使用してソースフィールドを複数の値に分割します。
KeyValueExtractorキーと値の抽出キーと値のペアのソースフィールドからキーと値を抽出します。
StringCatenateExtractor文字列の連結複数のフィールドの値を単一の文字列に連結します。
HTMLTagRemoverHTMLタグの除去ソースフィールド値からHTMLタグを削除します。

JsonKeyValueExtractor

JSON形式のソースフィールドから指定されたキーの値を抽出し、送信先フィールドにマッピングします。指定されたキーの値のみを抽出できます。

型の要件: 抽出された値の型は、送信先フィールドの型と一致する必要があります。型が一致しない場合、抽出された値はサイレントに破棄されます。

配列変換: 抽出された値が JSON 配列の場合、自動的に配列型のフィールド値に変換されます。

ソースフィールド値:

{"title": "the content", "body": "the content"}

title キーを抽出するには、プラグインを title をターゲットにするように構成します。送信先フィールドは "the content" を受け取ります。

配列型の場合:

  • LITERAL_ARRAY source: {"tags": ["a", "b", "c"]}

  • INT_ARRAY source: {"tags": [1, 2, 3]}

MultiValueSpliter

指定されたデリミタを使用してソースフィールド値を複数の値に分割し、その結果を配列型の送信先フィールドに書き込みます。

型の要件: 送信先フィールドは配列型である必要があります。

デリミタのサポート:

デリミタタイプ指定方法
一般的な非表示文字 (例: \t)直接記述
珍しい非表示文字Unicode表記を使用 (例: \u001D)
複数文字のデリミタ (例: ##, \t\t)直接記述

ソースフィールド値: 1,2,3

, をデリミタとして指定します。

構成の詳細については、「MultiValueSpliter の構成」をご参照ください。

KeyValueExtractor

キーと値のペアとしてフォーマットされたソースフィールドから、指定されたキーと値を抽出し、その結果を送信先フィールドにマッピングします。指定されたキーの値のみを抽出できます。デリミタは不要です。

型の要件: 抽出された値の型は、送信先フィールドの型と一致する必要があります。型が一致しない場合、値はサイレントに破棄されます。デリミタが抽出された値を区切る場合、送信先フィールドは配列型である必要があります。

重複キーの動作: 2つの同一のキーが存在する場合、2番目のキーの値のみが抽出されます。

ソースフィールド値: key1:value1,value2;key2:value3

構成:

  • キーと値のペアはセミコロン (;) で区切られます:key1:value1,value2key2:value3 を区別します。

  • キーと値はコロン (:) で区切られます:キーと値を区別します。

  • 値はカンマ (,) で区切られます:キーの複数の値を区別します。

StringCatenateExtractor

複数の送信先テーブルフィールドの値を、指定された順序で単一の文字列に連結します。

型の要件: このプラグインは INT 型のフィールドを連結できません。LITERAL 型のフィールドを使用することを推奨します。

フィールドソース: フィールドはソーステーブルではなく、送信先テーブルから取得する必要があります。複数のフィールド名はカンマ (,) で区切ります。

システム変数: $table を使用して、現在のテーブル名を連結された文字列に含めます。$table は、テーブルシャーディングのワイルドカードが構成されている場合にのみ設定されます。

field1field2 をアンダースコア (_) デリミタで連結します。

HTMLTagRemover

ソースフィールド値からすべてのHTMLタグを削除します。送信先フィールドはプレーンテキストコンテンツを受け取ります。

ソースフィールド値: <div id="copyright">OpenSearch</div>

処理後、送信先フィールド値は OpenSearch になります。

制限事項

制約詳細
API および SDK のアップロードプラグインは利用できません。アップロード前にデータを処理してください。
MaxCompute データソース1つの OpenSearch テーブルは、1つの MaxCompute ソーステーブルのみにマップされます。
StringCatenateExtractorINT 型のフィールドは連結できません。
JsonKeyValueExtractor および KeyValueExtractor抽出された値と送信先フィールドの型が一致しない場合、サイレントなデータ損失が発生します。
プラグイン構成のタイミングデータソースが設定された後にのみ構成してください。スキーマ定義中は利用できません。

関連トピック