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

OpenSearch:データソースのフィルター条件 (RDS/PolarDB)

最終更新日:Apr 01, 2026

フィルター条件を設定することで、ApsaraDB RDS または PolarDB のテーブルから OpenSearch へ同期される行を制御できます。条件を満たす行のみがインデックス化されます。この条件は、フル同期および増分同期の両方に適用されます。

サポートされる構文

フィールドの種類

フィルター条件では、以下の SQL フィールド型がサポートされています。

カテゴリ
整数型TINYINT、SMALLINT、INTEGER、BIGINT
浮動小数点型FLOAT、REAL、DOUBLE、NUMERIC、DECIMAL
日時TIME、TIMESTAMP

文字列(文字)型フィールドおよび DATE/DATETIME 型フィールドについては、特定の構文でサポートされます — 詳細については、「利用シーンの例」をご参照ください。

比較演算子

演算子適用対象
<><=>=数値型および日時型フィールド
=!=<>数値型および文字列型フィールド

論理演算子

AND 論理のみがサポートされています。複数の条件をカンマ (,) で区切って指定してください。AND キーワードは使用できません。

# SQL WHERE 句(OpenSearch のフィルター条件では無効)
where status=1 and type=2   # 無効
status=1 and type=2         # 無効

# OpenSearch のフィルター条件構文
status=1,type=2             # 有効

利用シーンの例

文字列型フィールドの値によるフィルター

文字列型フィールドが特定の値と一致する行のみを同期する場合:

field_string='a'
field_string!='b'

文字列値には、シングルクォート (')、ダブルクォート (")、またはクォートなしのいずれかを指定できます。

文字列型フィールドが空である行、または文字列 null を含む行を同期する場合:

field = ''
field != ''
field <> ''
field = 'null'
field = 'NULL'
field != 'null'
field != 'NULL'
field <> 'null'
field <> 'NULL'

NULL 値によるフィルター

数値型または文字列型フィールドが NULL である行を含める/除外する場合:

field = null
field = NULL
field != null
field != NULL
field <> null
field <> NULL
IS NULL および IS NOT NULL はサポートされていません。= null または != null を代わりに使用してください。

日付または日時型フィールドによるフィルター

特定の日付以降に作成された行のみを同期する場合:

createtime>'2021-02-05 00:00:00'

時刻値は、YYYY-MM-DD HH:MM:SS の形式に従う必要があります。

複数条件によるフィルター

複数の条件(AND 論理のみ)を組み合わせる場合は、カンマで区切って指定します。

status=1,literal_id='abcd',createtime>'2021-02-05 00:00:00'

注意事項

  • フィルター条件は、ApsaraDB RDS および PolarDB のデータソースにのみ適用されます。

  • OpenSearch アプリケーションスキーマのフィールド名ではなく、ソースデータベースのテーブルフィールド名を使用してください。

  • フィルター条件は、フル同期および増分同期の両方に適用されます。たとえば、status=1 が設定されている状態で、ApsaraDB RDS 内のドキュメントの status=1status=2 に変更された場合、そのドキュメントは OpenSearch へプルされません。

  • 以下の構文はサポートされていません。

    • OR 論理

    • IS NULLIS NOT NULL

    • 関数および式(例:in(type,1,2,3)length(title)>10

    • LIKE および NOT LIKE

    • 1=1 などの恒真条件