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

:in および notin

最終更新日:Jun 13, 2026

機能関数

機能関数のパラメーターで参照するフィールドは、各関数の説明に基づき、インデックスまたは属性フィールドとして設定されている必要があります

関数のパラメーターとして使用するドキュメントのフィールドは、その関数が要求する通り、インデックスまたは属性として設定されている必要があります

in または notin:フィールド値が特定のリストに含まれるかどうかを判定

1. 構文

in(field, "number1|number2")notin(field, "number1|number2")

2. パラメーター

field:判定対象のフィールド名。INT、LITERAL、FLOAT、DOUBLE 型のフィールドのみサポートされます。ARRAY 型および TEXT 型のフィールド、あいまい検索用のアナライザはサポートされません。number N:セット内の要素。複数の要素は縦棒(|)で区切ります。各要素は文字列である必要があります。

3. 戻り値

true/false

4. 利用シーン

利用シーン 1:「iphone」を含み、かつ type フィールドの値が 1、2、または 3 のドキュメントを取得します。type フィールドは INT 型である必要があります。

query=default:'iphone'&&filter=in(type, '1|2|3')

利用シーン 2:「iphone」を含み、かつ type フィールドの値が 1、2、または 3 以外のドキュメントを取得します。type フィールドは INT32 型である必要があります。

query=default:'iphone'&&filter=notin(type, '1|2|3')

5. 注意事項

  • 関数のパラメーターで参照するフィールドは、属性フィールドとして設定されている必要があります。

  • フィルター句で in または notin 関数を使用する場合、ARRAY 型のフィールドは使用できません。使用した場合、エラーコード 6141 のフィルター句構文エラーが返されます。

  • 関数 in(field, "value1|value2")(field = value1) OR (field = value2) と同等ですが、in 関数の方がパフォーマンスが優れています。notin 関数についても同様です。

  • in または notin 関数に大量の値(例:数千件)を渡すと、クエリのパフォーマンスが著しく低下する可能性があります。値リストが長くなるほどフィルタリング時の計算オーバーヘッドが増加し、クエリの遅延やタイムアウトを引き起こすことがあります。

  • 大量の値を渡す必要がある場合は、リストをより小さなバッチ(例:1 バッチあたり 500 件以下)に分割して個別にクエリを実行し、その結果を統合してください。