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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- solr 相關度評分,自定義評分Solr
- Solr分頁與高亮(使用SolrNet實現)Solr
- MySQL實現分組排序MySql排序
- Spring Data Solr 教程: 排序SpringSolr排序
- 原生Javascript實現星星評分元件JavaScript元件
- Java利用Comparator實現分組排序Java排序
- Android 8.0/9.0 wifi 自動連線評分機制AndroidWiFi
- iOS事件分發機制與實踐iOS事件
- 分頁機制
- 微信小程式實現星星評分效果微信小程式
- NX實現機制淺析
- 事務機制如何實現
- FreeTextBox實現機制
- 80386的分段機制、分頁機制和實體地址的形成
- 隨機快速排序Java程式碼實現隨機排序Java
- TapTap評分演算法將升級,提升最新版本評分權重,增加反水軍機制APT演算法
- Js非同步機制的實現JS非同步
- docker 實現 Redis 的哨兵機制DockerRedis
- Spring AOP 的實現機制Spring
- Spring IOC容器實現機制Spring
- imp_implementationWithBlock()的實現機制BloC
- Objective-C block 實現機制ObjectBloC
- NodeJS實現websocket代理機制NodeJSWeb
- HashMap的內部實現機制HashMap
- spring aop的實現機制Spring
- Java反射機制實現與原理Java反射
- Oracle Mutex實現機制(轉帖)OracleMutex
- Java實現配置載入機制Java
- MySQL中的MVCC實現機制MySqlMVC
- 【搜尋引擎】Solr Suggester 實現全文檢索功能-分詞和和自動提示Solr分詞
- jQuery星級評分實現過程詳解jQuery
- 模擬實現的星星評分效果詳解
- Qml 實現星級評分元件 已釋出元件
- 順序表實現二分排序排序
- solr搜尋分詞優化Solr分詞優化
- 併發機制的底層實現
- Nginx accept鎖的機制和實現Nginx
- Istio流量管理實現機制深度解析