solr服務搭建完成(索引已建立,可以進行搜索)
現象: 搜索" 美女"後,“美女美女美女美女”文檔會出現第一位。
原因: 文檔中關鍵詞出現次數,默認的tf,即文檔頻率值就大,所以總是出現 在第一們。
但實際系統中可能並不需要 這種結果
這個時候的解決辦法:根據自己業務需要進行重寫評分器
1. 自定義評分器
package cn.xxt.solr.util;
import org.apache.lucene.search.DefaultSimilarity;
/**
* vtigu評分器
* @author zhaoguoli
* @version V1.0 2012-11-04
*/
@SuppressWarnings("serial")
public class VtiguSolrSimilarity extends DefaultSimilarity{
public float tf(float freq) {
return 1.0f;
}
public float tf(int freq) {
return 1.0f;
}
}
2. 添加至solr 配置文件 schema.xml
<!-- <similarity class="org.apache.lucene.search.DefaultSimilarity"/> -->
<similarity class="cn.xxt.solr.util.VtiguSolrSimilarity"/>
3. cn.xxt.solr.util.VtiguSolrSimilarity需要放置在 solr.war包中
路徑爲 WEB-INF/classes/cn/xxt/solr/util/目錄下。
4. 重新啓動 solr服務即可。