ElasticSearch 自定义排序(随机查询结果)

背景

在项目上遇到一个需求,需要随机展示从 elasticsearch 中获取的查询结果,这时候想到可以通过 es 的自定义排序,来实现这个需求。自定义排序其实就是调整 es 的评分机制,达到结果的权重不同,最终实现随机查询的目的。

我们通过使用 function_score 来实现不同的评分机制。官网介绍

常见类型

function_score 查询常见有下面几种

  • script_score script 脚本评分
  • weight 字段权重评分
  • random_score 随机评分
  • field_value_factor 字段值因子评分
  • decay functions: gauss, linear, exp (没用过)

代码例子

  • script_score

这里的查询的分数默认是乘以脚本评分的结果。 如果你想禁止这个,设置 "boost_mode": "replace"

GET index/_search
{
   
   
    "query": {
   
   
        "function_score": {
   
   
            "query": {
   
   
                "match": {
   
    "field": "value" }
            },</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值