通过设置SolrInputDocument 的boost来改变文档评分

转载 2016年06月02日 10:07:31

原文链接:http://itindex.net/detail/47885-solrinputdocument-boost-变文

solr通过关键字查询后的文档得分最后要乘以这个boost因子,boost默认为1.0f  

我们可以通过更新文档的boost从而来影响文档的得分,从而影响结果的排序。

public class SolrClientUpdateDemo {
	public static final String SOLR_URL = "http://localhost:8088/solr-src/core0";

	/**
	 * 更新索引DEMO,UpdateRequest可以既可以更新也可以删除索引,但同时只能执行一种操作
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SolrServer solr = null;
		solr = new HttpSolrServer(SOLR_URL);
		UpdateRequest updateRequest = new UpdateRequest();
		SolrInputDocument doc = new SolrInputDocument();
		doc.addField("id", "id10");
		doc.addField("name", "name10");
		doc.addField("type", "type10");
		doc.setDocumentBoost(10.0F);
		//这行代码一定要加,否则索引更新不提交
		updateRequest.setAction(UpdateRequest.ACTION.COMMIT,false,false);
		//更新id=bean_0的索引
		updateRequest.add(doc);

		try {
			UpdateResponse updateResponse = updateRequest.process(solr);
			System.out.println(updateResponse.getStatus());
		} catch (SolrServerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

 

这段代码将id=id10的DOC的boost扩大了10倍为10.0F   这样,这个文档的最后得分就会变成原来的10倍,因此排序会靠前。

通过改变boost值来改变文档的得分源码

在进行xiangu package change; import java.io.IOException; import org.apache.lucene.analys...
  • u012965373
  • u012965373
  • 2014年11月01日 23:50
  • 800

lucene -- 5 得分 设置boost

通过Searcher.explain(Query query, int doc)方法可以查看某个文档的得分的具体构成。  在Lucene中score简单说是由 tf * idf * boost ...
  • jazywoo123
  • jazywoo123
  • 2012年07月10日 22:36
  • 805

lucene/es 的评分机制

lucene 的评分机制 elasticsearch是基于lucene的,所以他的评分机制也是基于lucene的。评分就是我们搜索的短语和索引中每篇文档的相关度打分。 如果没有干预评分算法的时...
  • sd4015700
  • sd4015700
  • 2015年12月29日 16:31
  • 1749

Elasticsearch简介&基本使用

简介Elasticsearch是一个分布式、可扩展、实时的搜索与数据分析引擎Elasticsearch被用作全文检索、结构化检索、分析以及这三个功能的组合Elasticsearch 是使用 Java ...
  • benhuo931115
  • benhuo931115
  • 2017年12月21日 14:35
  • 232

java对象转solrinputdocument

SolrClient solrClient= new HttpSolrClient(URL + "/" + core); UpdateRequest req = ...
  • zenghb
  • zenghb
  • 2016年06月18日 15:28
  • 1450

所有的 Boost 库文档的索引

入门 工具 网站 新闻 社区 常见问题 更多的信息 按字母顺序列出的库 按类别列出的库 算法 破碎的编译器的解决方法 并发编程 容器 正确性和测试 数据结构 特定于域的 函数对象和...
  • xinqingwuji
  • xinqingwuji
  • 2017年04月20日 23:22
  • 907

android 评分条 RatingBar 使用及自定义

一、先上效果图片:    第一个是自定义;    第二个是原生的:   二、atingBar 介绍:   RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评...
  • q610098308
  • q610098308
  • 2016年06月16日 14:23
  • 2417

solr boost设置

当用solr或者lucene搜索的时候,如果想对不同类型的文章,或者不同的字段设置不同的权重,又或者对不同的搜索词语设置不同权重,则需要boost功能。 1、boost设置方法      在索引时候设...
  • wgw335363240
  • wgw335363240
  • 2014年07月18日 16:52
  • 3604

JQuery中的动画整理

【在JQ动画中,都是通过改变元素的CSS属性来产生动画的】 JQ动画有以下几种: 1.show(); $("element").show(1000/"slow(600)"/"fast(200)"/"n...
  • u013778905
  • u013778905
  • 2016年05月31日 15:08
  • 271

使用Lucene通过改变boost的值来改变文档的得分

/*  * 通过改变boost的值来改变文档的得分  * 在这个例子中Doc3的得分是最少的,  * 加入我想把doc3的得分变高,把他放到网页的第一条,  * 那么就是用doc3.setBo...
  • u012965373
  • u012965373
  • 2015年04月03日 09:05
  • 1072
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过设置SolrInputDocument 的boost来改变文档评分
举报原因:
原因补充:

(最多只允许输入30个字)