リストを含むストアを管理していますが、その一部はプレミアム メンバーです。検索結果の上に 25 km の範囲内のプレミアム メンバーを取得しようとしています。残りのリストは最寄りの順に並べられています。
リスティングがプレミアムであることを示すために、ブール型のフィールド、listing_premium を定義しました。
<field name="listing_premium" type="boolean" indexed="true" stored="true" />
距離をクエリ (listing_location) にマッピングし、ブール値を表す整数 (true = 1、false = 0) で乗算することにより、このブール値を並べ替え句で使用できれば簡単です。
以下は、listing_premium がブール値であるため機能しません...
&sort=mul(map(geodist(listing_location),0.0001,25,1,0),listing_premium)+desc,geodist(listing_location) asc
ここでの私の質問は次のとおりです。
- どういうわけか、listing_premium を 0 または 1 にマップできますか
- または、並べ替えに if ステートメントを含めることはできますか
- または、スキーマでcopyFieldを使用して、listing_premiumをlisting_premium_intに変換する生成フィールドを作成できますか
とても感謝しております!