関数
filter 句でプラグイン関数を使用してデータをフィルターできます。また、数値を戻り値として返す関数を sort 句で使用してデータをソートできます。
関数パラメーターとして使用するドキュメントのフィールドは、インデックスまたはプロパティとして作成する必要があります。
multi_attr:配列フィールド内の指定位置にある値の取得
1. 構文:
multi_attr(field, pos, default_value=0|"")
2. パラメーター:
field:クエリ対象のフィールド名。フィールドは配列型であり、属性フィールドとして設定されている必要があります。pos:整数の定数、または整数フィールド。整数フィールドを指定する場合は、属性フィールドとして設定されている必要があります。インデックスは 0 ベースです。default_value (ソートスコア):オプション。数値または文字列の定数。指定した位置に値が存在しない場合に、この値が返されます。
3. 戻り値:
指定した pos に値が存在する場合、関数は配列のそのインデックスにある値を返します。
指定した pos に値が存在せず、かつ default_value パラメーターが設定されていない場合、関数は 0 を返します。
指定した pos に値が存在せず、かつ default_value パラメーターが設定されている場合、関数は default_value を返します。
4. シナリオ:
シナリオ 1:製品に、市場価格、割引価格、販売価格など複数の価格があり、prices フィールドに格納されています。販売価格が 1000 未満の携帯電話をクエリします。
query=default:'phone'&&filter=multi_attr(price,2)<1000シナリオ 2:製品に、市場価格、割引価格、販売価格など複数の価格があり、prices フィールドに格納されています。クエリ結果を割引価格の昇順でソートします。割引価格が存在しない場合、または prices フィールドが空の場合は、デフォルト値として 600 を使用します。
query=default:'mobile phone'&&sort=+multi_attr(price,1,"600")5. 注意事項:
関数パラメーターとして使用するフィールドは、インデックスまたはプロパティとして作成する必要があります。
default_valueは二重引用符で囲んでください。