機能関数
フィルター句で機能関数を使用して、フィルター条件を定義できます。数値を返す機能関数は、ソート句でソートに使用できます。
機能関数のパラメーターで参照するフィールドは、各関数の説明に基づいてインデックスフィールドまたは属性フィールドとして構成する必要があります。
multi_attr: 指定された位置にある指定された配列フィールドの値を返します
1. 構文
multi_attr(field, pos, default_value=0|"")
2. パラメーター
field: 値を取得するフィールドの名前。このパラメーターはARRAY型である必要があります。指定されたフィールドは属性フィールドとして構成する必要があります。
pos: 位置を示す添え字。0から始まります。このパラメーターは、整数定数または整数フィールドを指定します。指定されたフィールドは属性フィールドとして構成する必要があります。
default_value: オプション。このパラメーターは文字列定数を指定します。 pos パラメーターで指定された位置に値が存在しない場合、default_value パラメーターの値が返されます。
3. 戻り値
pos パラメーターで指定された位置に値が存在する場合、この値が返されます。
pos パラメーターで指定された位置に値が存在せず、default_value パラメーターが指定されていない場合、0が返されます。
pos パラメーターで指定された位置に値が存在せず、default_value パラメーターが指定されている場合、default_value パラメーターの値が返されます。
4. シナリオ
シナリオ 1: 商品には、市場価格、割引価格、販売価格など、複数の価格があります。価格はpriceフィールドに記録されます。次のクエリ句を使用して、販売価格が1,000未満の携帯電話を検索できます。
query=default:'Mobile phone'&&filter=multi_attr(price,2)<1000
シナリオ 2: 商品には、市場価格、割引価格、販売価格など、複数の価格があります。価格はpriceフィールドに記録されます。次のクエリ句を使用して、クエリ結果を割引価格の昇順でソートできます。割引価格が存在しない場合、またはpriceフィールドが空の場合、デフォルトで値600がpriceフィールドに割り当てられます。
query=default:'Mobile phone'&&sort=+multi_attr(price,1,"600")
5. 使用上の注意
この関数のパラメーターで参照するフィールドは、属性フィールドとして構成する必要があります。
default_value パラメーターの値は二重引用符("")で囲む必要があります。