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