`
san_yun
  • 浏览: 2637877 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

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

    博客分类:
  • solr
 
阅读更多

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倍,因此排序会靠前。

分享到:
评论

相关推荐

    apache solr 例子

    每个`SolrInputDocument`对应一个文档,你可以为其添加字段并赋值,Solr会自动处理这些数据。 删除文档通常基于文档ID进行。你可以调用`SolrServer`的`deleteById`方法,传入需要删除的文档ID。如果要删除所有匹配...

    UpdateSolrField.rar

    - 更新特定文档时,首先需要知道文档的唯一标识符(通常为ID字段),然后在`SolrInputDocument`中设置这个ID。 4. **更新字段**: - 可以使用`SolrInputDocument`的`addField`方法来添加或更新单值字段,如:`doc...

    大数据Solr二次开发.pdf

    在`addDocs`方法中,创建`SolrInputDocument`对象,分别添加字段如"id"和"name",然后将这些文档添加到列表中。`cloudSolrServer.add(docs)`用于将文档批量添加到Solr服务器,`commit`方法则提交这些变更,确保它们...

    Solr学习笔记(三)Solr客户端开发实例

    下面,我们将通过一个简单的示例来展示如何使用SolrJ进行客户端开发。 1. 添加文档到Solr 在Java代码中,我们需要创建一个`SolrInputDocument`对象,用于表示要添加到Solr的文档。然后,使用`SolrServer`接口的`...

    solrcloud分布式集群部署zookeeper集群安装+ClientCRUD实例

    例如,使用SolrJ的`SolrInputDocument`对象创建文档,然后调用`update.add()`方法添加到索引中。 2. 读取(Read):通过查询接口获取文档,可以指定查询条件、排序方式等。例如,使用SolrJ的`QueryResponse`对象来...

    solr创建索引并查询

    - 创建一个SolrInputDocument对象,并设置相应的字段值。 - 调用`add`方法将文档添加到索引中。 - 可以选择性调用`commit`方法提交更改,或等待自动提交。 3. **删除文档** - 通过ID或查询语句删除指定文档。 ...

    solrj的使用

    SolrJ提供了一个方便的`SolrInputDocument`类来构建索引文档。以下是如何使用SolrJ添加文档的例子: ```java SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", "1"); doc.addField("title", ...

    SpringBoot整合Solr案例.docx

    例如,对于添加操作,我们可以创建一个`SolrClient`的bean,并在`add`方法中将`Book`对象转换为`SolrInputDocument`,然后调用`solrClient.add()`和`solrClient.commit()`来添加文档并提交更改。删除操作则通过`...

    1.4、solrj的使用_代码开始1

    SolrJ并没有提供专门的更新方法,而是通过先删除后添加的方式来实现文档的更新。具体操作可以参考删除和添加文档的示例代码。 4. **查询文档** - **简单查询**: ```java @Test public static void ...

    solrj使用教程

    首先,你需要创建一个`SolrInputDocument`对象,并设置字段: ```java SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", "1"); doc.addField("title", "SolrJ使用教程"); doc.addField(...

    Solr Java Demo

    - **添加、删除和更新文档**:使用`SolrInputDocument`对象,通过`add()`方法向Solr服务器发送请求,实现对文档的操作。 - **查询操作**:`SolrQuery`类用于构建查询,包括查询条件、排序、分页等,然后通过`query...

    solr开发详解

    - Solr 客户端(如浏览器或 Java 程序)通过 POST 请求向 Solr 服务端发送包含 Field 等信息的 XML 文档,Solr 通过解析这些文档来维护索引(增删改)。 - **搜索流程**: - Solr 客户端通过 GET 请求向 Solr ...

    solr全文检索

    这些类可能包含读取文档、解析内容、创建SolrInputDocument对象以及使用Solr客户端发送索引更新请求的逻辑。 5. **索引管理** - 删除指定索引:通过发送一个删除请求,如`...

    Java搜索服务Solr操作指南.pdf

    Solr是一个独立的基于全文检索的企业级搜索应用服务器,它支持通过HTTP利用XML将文档加载到搜索集合中,用户可以通过HttpGet操作发送查找请求,并得到搜索的返回结果。在Java后台开发中,Solr通过SolrJ客户端库与...

    solr-config_solrj-demo.rar_DEMO_solr_solr的j

    在DEMO中,你会看到如何使用SolrJ连接到Solr服务器,创建`SolrServer`对象,以及如何使用`SolrInputDocument`来添加、删除和更新文档。此外,SolrJ还支持异步操作,可以提高批量处理的效率。 三、Solr索引操作 索引...

    Apache_Solr_初级教程

    - 文档通常以 SolrInputDocument 形式提供,其中包含了文档的字段及其值。 4. **执行查询**: - SolrServer 的 query 方法可以用来执行查询操作。 - 查询参数可以是简单的字符串搜索,也可以是复杂的查询构造,...

Global site tag (gtag.js) - Google Analytics