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

OpenSearch:ApsaraDB RDS および PolarDB データソースのフィールドをフィルタリングするための条件の設定

最終更新日:Dec 28, 2024

はじめに

  • サポートされているフィールドタイプ: TINYINT、SMALLINT、INTEGER、BIGINT、FLOAT、REAL、DOUBLE、NUMERIC、DECIMAL、TIME、および TIMESTAMP

  • サポートされている比較演算子: <、>、<=、>=、=、!=、<>。: =、!=、および <> は、数値型と文字型のフィールドをフィルタリングするために使用できます。

  • サポートされている値: null を含むすべての値

1. 文字型のフィールドをフィルタリングする: field_string='a' または field_string! ='b' 一重引用符 (') または二重引用符 (") を使用することも、引用符を使用しないこともできます。次の例は、空のフィールドと null 値を持つフィールドをフィルタリングするために使用できる条件を示しています。

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

2. null 値を持つフィールドをフィルタリングする: 次の例は、null 値を持つ数値型または文字型のフィールドをフィルタリングするために使用できる条件を示しています。

# 次のフィルタ条件は有効です。
field = null 
field = NULL
field != null
field != NULL
field <> null
field <> NULL

3. DATE 型または DATETIME 型のフィールドをフィルタリングする: createtime>'2021-02-05 00:00:00'

4. 複数の条件に基づいてフィールドをフィルタリングする: status=1,literal_id='abcd',createtime>'2021-02-05 00:00:00'

使用上の注意

  • ApsaraDB RDS および PolarDB データソースからのフィールドのみをフィルタリングできます。

  • データソースのデータをフィルタリングするための条件を設定する場合は、OpenSearch アプリケーションのスキーマのフィールドではなく、ソースデータベースのテーブルフィールドを使用する必要があります。

  • フィルタ条件が有効になると、条件を満たすデータエントリのみがプルされます。フィルタ条件は、フルデータと増分データに適用されます。たとえば、フィルタ条件 status=1 が設定された後、ApsaraDB RDS のドキュメント status=1 が status=2 に変更された場合、このドキュメントは OpenSearch にプルされません。

  • AND 論理演算のみがサポートされています。カンマ (,) を使用して AND 論理演算を実装します。OR 論理演算はサポートされていません。

## SQL ステートメントの WHERE 句:
where status=1 and type=2

# OpenSearch でのデータソースのフィルタリングの設定。
where status=1 and type=2 # 無効です。
status=1 and type=2 # 無効です。
status=1,type=2 # 有効です。
  • null 値または null 以外の値を持つフィールドをフィルタリングする必要がある場合は、is null または is not null を使用することはできません。有効な構文の詳細については、このトピックの「例」セクションの null 値を持つフィールドをフィルタリングするための条件を参照してください。

  • データベーステーブルの createtime という名前のフィールドなど、DATE 型または DATETIME 型のフィールドをフィルタリングする必要がある場合は、フィルタ条件の時刻が必須の形式である必要があります。例: createtime>'2018-03-01 00:00:00'

  • in(type,1,2,3) や length(title)>10 などの関数や式はサポートされていません。

  • like '%aaa' や not like '%bbb' などの like および not like はサポートされていません。

  • 1=1 などの同一の等式はサポートされていません。

  • データソースにプライマリテーブルとセカンダリテーブルが設定されている場合は、プライマリテーブルとセカンダリテーブルの両方でデータをフィルタリングすることをお勧めします。これにより、セカンダリテーブルのデータが過剰なストレージ容量を占有するのを防ぎます。