機能関数
フィルター句で機能関数を使用して、フィルター条件を定義できます。数値を返す機能関数は、ソート句でソートに使用できます。
機能関数のパラメーターで参照するフィールドは、各関数の説明に基づいてインデックスフィールドまたは属性フィールドとして構成する必要があります。
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" を含み、値が 1、2、または 3 である type フィールドを持つドキュメントを取得します。type フィールドは INT タイプである必要があります。
query=default:'iphone'&&filter=in(type, '1|2|3')
シナリオ 2: "iphone" を含み、値が 1、2、または 3 *でない* type フィールドを持つドキュメントを取得します。type フィールドは INT32 タイプである必要があります。
query=default:'iphone'&&filter=notin(type, '1|2|3')
5. 使用上の注意
関数のパラメーターで参照するフィールドは、属性フィールドとして構成する必要があります。
フィルター句で in または notin 関数を使用する場合、ARRAY タイプのフィールドは使用できません。使用すると、エラーコード 6141 の次の構文エラーが返されます: フィルター句の構文エラー。
in(field, "number1|number2") 関数と (field = number1) OR (field = number2) 構文はどちらも、フィールド値が特定のリストに含まれているかどうかを判断できます。ただし、in 関数のほうがパフォーマンスが優れています。このルールは notin 関数にも適用されます。