solr修改評分機制實現排序
solr要修改打分機制怎麼改?
大多數回答:Similarity是個不錯的方案.
但是具體怎麼弄很少有明確的描述,官方wiki也只是說可以自定義,具體如何做,沒有例子.
首先,solr4.0本身提供了多種評分方法:
org.apache.solr.search.similarities.BM25SimilarityFactory
org.apache.solr.search.similarities.DefaultSimilarityFactory
org.apache.solr.search.similarities.DFRSimilarityFactory
org.apache.solr.search.similarities.IBSimilarityFactory
org.apache.solr.search.similarities.LMDirichletSimilarityFactory
org.apache.solr.search.similarities.LMJelinekMercerSimilarityFactory
org.apache.solr.search.similarities.SchemaSimilarityFactory
每一個有什麼不同不在今天討論範圍內,說下怎麼配置.
schema.xml
bm25_test欄位就會按照BM25SimilarityFactory機制評分.那麼如何進一步自定義呢,不廢話看程式碼:
package org.nlp.lucene.search.similarities;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.solr.schema.SimilarityFactory;
public class NlpSimilarityFactory extends SimilarityFactory {
public Similarity getSimilarity() {
return new NlpSimilarity();
}
}
package org.nlp.lucene.search.similarities;
import org.apache.lucene.search.similarities.DefaultSimilarity;
public class NlpSimilarity extends DefaultSimilarity {
@Override //idf值全部為1.0f
public float idf(long docFreq, long numDocs) {
return 1.0F;
}
@Override //tf值全部為1.0f
public float tf(float freq) {
return 1.0F;
}
@Override
public String toString() {
return “nlpSimilarity”;
}
}
SimilarityFactory照葫蘆畫瓢就是,NlpSimilarity可以重寫哪些方法看一下DefaultSimilarity就好,當然BM25SimilarityFactory這些都是可以搞的,自己看著辦吧,哥只能幫你到這裡了.
什麼,怎麼確定評分的修改是否生效?
查詢的時候加上引數debug=true就好.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29754888/viewspace-1629741/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL實現分組排序MySql排序
- Java利用Comparator實現分組排序Java排序
- Android 8.0/9.0 wifi 自動連線評分機制AndroidWiFi
- 原生Javascript實現星星評分元件JavaScript元件
- 【搜尋引擎】Solr Suggester 實現全文檢索功能-分詞和和自動提示Solr分詞
- Spring AOP 的實現機制Spring
- Spring IOC容器實現機制Spring
- NodeJS實現websocket代理機制NodeJSWeb
- NX實現機制淺析
- 微信小程式實現星星評分效果微信小程式
- 隨機快速排序Java程式碼實現隨機排序Java
- solr研磨之遊標分頁Solr
- solr搜尋分詞優化Solr分詞優化
- TapTap評分演算法將升級,提升最新版本評分權重,增加反水軍機制APT演算法
- MySQL中的MVCC實現機制MySqlMVC
- docker 實現 Redis 的哨兵機制DockerRedis
- Js非同步機制的實現JS非同步
- Objective-C block 實現機制ObjectBloC
- Android RollBack機制實現原理剖析Android
- Qml 實現星級評分元件 已釋出元件
- 順序表實現二分排序排序
- VUE實現評分效果和不同型別分數展示效果元件Vue型別元件
- 併發機制的底層實現
- Nginx accept鎖的機制和實現Nginx
- Istio流量管理實現機制深度解析
- javascript事件機制底層實現原理JavaScript事件
- Golang利用select實現超時機制Golang
- 聊聊心跳機制及netty心跳實現Netty
- [轉載]Spring AOP的實現機制Spring
- 三種方式使用純 CSS 實現星級評分CSS
- Android事件分發機制Android事件
- php實現 歸併排序,快速排序PHP排序
- 【新特性速遞】評分,評分,評分
- Java 併發機制底層實現 —— volatile 原理、synchronize 鎖優化機制Java優化
- spring-event-事件監聽機制實現Spring事件
- Kafka核心中的分散式機制實現Kafka分散式
- 實現一個“計劃任務”機制
- Redis的記憶體和實現機制Redis記憶體
- 深入理解事件機制的實現事件