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

:multi_attr

最終更新日:Aug 22, 2026

関数

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 は二重引用符で囲んでください。