es加权排序

  • 方式一
@Test
    public void testAddScore() {
        /**
         * 希望那条记录排名靠前,需要将记录中包含的字段值设置其加权值,调高加权值,可以使得排名越靠前。反之,靠后。
         */
        SearchResponse response = client.prepareSearch("myblog")
                .setTypes("article")
                //只要titile出现一次Elasticsearch就加5
分,content里面出现一次加10.setQuery(QueryBuilders.queryStringQuery("Elasticsearch")
                        .field("title", 5f)
                        .field("content", 10f)
                )
                .get();
 
        //分析结果
        for (SearchHit hit : response.getHits()) {
            // System.out.print(hit.getScore());
            System.out.println("\t" + hit.getSourceAsString());
        }
    }
  • 方式二
public void testjiaquan2(){
        SearchResponse res = client.prepareSearch("myblog")
                .setTypes("article")
                .setQuery(QueryBuilders.boolQuery()
                        .should(QueryBuilders.matchQuery("title","elasticsearch").boost(5f))
                        .should(QueryBuilders.matchQuery("content","elasticsearch").boost(10f))
                )
                .get();
        for(SearchHit hit : res.getHits()){
            System.out.println(hit.getScore()+","+hit.getSourceAsString());
        }
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Elasticsearch中,评分排序是根据文档的相关性分数进行排序的。如果没有特殊声明的排序字段,Elasticsearch会根据文档的相关性分数(score)来排序,分数越高的文档排序越靠前。 实际上,Elasticsearch提供了多种类型的查询,可以根据不同的需求进行排序。比如,可以通过添加排序列并在建立索引时计算排序值,并将其写入索引中来实现排序。不过,索引结构并不总是笛卡尔积的排列,所以在短时间内很难立即上线,需要重新建立索引结构。 另一种常用的评分排序方法是使用multi_match查询,可以指定多个字段进行查询,并使用相关性分数进行排序。你可以通过设置查询参数来指定字段,类型和查询内容,然后根据相关性分数对结果进行排序。这样,就可以根据查询内容在指定的字段中找到相关性最高的文档,并将其排在前面。 总的来说,Elasticsearch的评分排序是根据文档的相关性分数进行的,可以根据不同的需求使用不同的查询方法和参数来实现排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [ElasticSearch 评分排序](https://blog.csdn.net/weixin_42413747/article/details/111891799)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Elasticsearch中的评分排序--Function score query](https://blog.csdn.net/qq_39198749/article/details/126639682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值