solr 函数使用之map


map 函数是将将一个字段指定范围内的值进行映射转换为目标值

常见的用法有:

map(x,min,max,target)和map(x,min,max,target,other)两种

例如:

map(x,0,0,1) 在函数参数中的x如果为0时则将其值映射为1,这在处理默认值为0时很有用。

map(x,10,100,1,2) 在函数参数中的x如果落在[10,100]之间,则将x的值映射为1,否则将其值映射为2

 

使用方法:

一般用作排序

 

sort=sum(value, map(age,10,10,$x,$y))+asc&x=2&y=3

 

上面是将age字段值为10,则将其值映射为2,否则为3,然后加上value,然后按照升序排列

 

sort=sum(value,map(age,10,10,$x,$y))+asc&x=sum(2,some_field*2)&y=3

 与上一个例子的意图差不多,只是x值的生成是通过函数实现

 

通过map函数,对score字段进行影响,然后对score进行排序

http://dev.aifang.com:8487/solr/loupan/select/?q={!func}map(loupan_id,1004,1004,1,100)&fl=*,score&sort=score+asc,loupan_id+desc

直接在sort的时候使用map进行排序

 

http://dev.aifang.com:8487/solr/loupan/select/?q=*:*&fl=*,score&sort=map(loupan_id,1004,1004,1,100)+asc

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM