我维护一个包含商品详情的商店,其中一些是高级会员。我试图在搜索结果的顶部25公里范围内获得高级会员,其余的列表按最近的顺序排序。
为了表明列表是优质的,我已经定义了布尔字段listing_premium。
<field name="listing_premium" type="boolean" indexed="true" stored="true" />
如果我可以通过将距离映射到查询(listing_location)并将其与表示布尔值的整数相乘(true = 1,false = 0)来在sort子句中使用此布尔值,这很容易
以下内容不起作用,因为listing_premium是一个布尔值...
&sort=mul(map(geodist(listing_location),0.0001,25,1,0),listing_premium)+desc,geodist(listing_location) asc
我的问题是:
非常有责任!
答案 0 :(得分:0)
布尔值的值可能不是0和1。您可以使用if()函数根据该值选择值。
这个表达式:
if(listing_premium,1,0)
如果listing_premium为真,则返回1;如果为false,则返回0。