亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Solr設定不同字段的權重,根據相關度和業務字段綜合排序搜索

標簽:
Java

1. Solr文本匹配不同字段的相关度权重设置需要做如下设置:

1)启用edismax选项,在检索url上添加defType=edismax参数 
2)设置q参数为搜索关键词,这里不要再写搜索表达式了 
3)设置qf参数,指定不同字段的权重,例如:title^10 keywords^10 content^1 表示title字段的权重设置为10,keywords为10,content权重设置为1 

2. Solr非检索字段权重设置,需要设置查询的bf(boost function)参数,solr中提供了几十个数学函数可以做权重提升的函数设置,下面是一个简单的例子:

sum(sum(if(setTop,10000,0),sqrt(pv)),product(0.00001,sub(30,div(ms(NOW,createTime),86400000))))

说明如下:

1)这个函数中首先对是否指定做判断加权:if(setTop,10000,0) 
2)Sqrt(pv)对pv做开方 
3)product(0.00001,sub(30,div(ms(NOW,createTime),86400000)) 30 - 创建时间距离现在的天数 然后乘以 0.00001 
4)使用sum函数对1,2,3三部分的加权做求和 

Solr权重搜索相关资料: 
http://wiki.apache.org/solr/QueryElevationComponent 
http://wiki.apache.org/solr/FunctionQuery#Sort_By_Function 
http://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_boost_the_score_of_newer_documents

原文链接:http://outofmemory.cn/java/solr/search-function-query-effect-result-order

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消