Elasticsearch-关键词随机查询(8.x)

目录

一、查询语句

二、Java代码实现


基础介绍:

ES自定义评分机制:function_score查询详解-阿里云开发者社区ES自定义评分机制:function_score查询详解icon-default.png?t=N7T8https://developer.aliyun.com/article/1054571

开发版本详见:Elasticsearch-经纬度查询(8.x-半径查询)_es经纬度范围查询-CSDN博客

本案例只展示随机查询,具体查询权重需根据自身业务修改

一、查询语句

GET /article-test-read/_search
{"query": {"function_score": {"query": {"match_phrase": {"content": "长沙"}},"functions": [{"random_score": {"field": "_seq_no","seed": 100}}],"score_mode": "multiply"  // 将随机分数与其他查询分数相乘}}
}

二、Java代码实现

具体查询对象,可自行定义,本方法只提供思路,莫直接粘贴使用

        // 封装ES查询参数BoolQuery.Builder boolQueryBuilder = new BoolQuery.Builder();// 封装ES查询参数List<Query> shouldList = new ArrayList<>();// 笔记关键词查询Query byIkTitle = MatchQuery.of(match -> match.field("title").query(request.getSearch()).boost(2.0f))._toQuery();shouldList.add(byIkTitle);Query byIkContent = MatchQuery.of(match -> match.field("content").query(request.getSearch()))._toQuery();shouldList.add(byIkContent);boolQueryBuilder.should(shouldList).minimumShouldMatch("1");// 随机查询long randomValue = RandomUtil.randomLong(665359, 159265359);FunctionScoreQuery functionScoreQuery = FunctionScoreQuery.of(f -> f.query(q -> q.bool(boolQueryBuilder.build())).functions(fn -> fn.randomScore(r -> r.field("_seq_no").seed(String.valueOf(randomValue)))).scoreMode(FunctionScoreMode.Multiply).boostMode(FunctionBoostMode.Multiply));SearchRequest.Builder searchRequestBuilder = new SearchRequest.Builder();searchRequestBuilder.index(esIndexProperties.getNoteIndexRead()).query(query -> query.functionScore(functionScoreQuery)).size(request.getSize());// ES查询SearchRequest searchRequest = searchRequestBuilder.build();log.info("notePageSearch query:{}", searchRequest.toString());SearchResponse<NoteIndex> searchResponse = esUtil.queryDocument(searchRequest, NoteIndex.class);searchResponse.hits().hits().forEach(hit -> {if (Objects.nonNull(hit.source())) {// 业务处理}});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/405451.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm安装时一直在idealTree:npm: sill idealTree buildDeps卡住不动解决方法

npm安装xmysql时一直idealTree:npm: sill idealTree buildDeps卡住不动 问题解决&#xff0c;如下图所示 解决方法&#xff1a; 1、查看.npmrc位置&#xff0c;并去目录中删掉.npmrc文件 --在cmd&#xff08;DOS页面&#xff09;界面执行下述指令&#xff0c;可查看 .npmrc 文…

数学建模起步感受(赛前15天)

0基础直接上手数模&#xff0c;因为大一&#xff01;年轻就是无所畏惧&#xff01;开个玩笑&#xff0c;因为数模比赛比一年少一年… 抱着不打也是浪费的态度&#xff0c;我开始着手准备 首先python啥也不会&#xff0c;知道有元组这玩意… 仅仅在刷软考题的时候遇到python选择…

单域名SSL证书申请三步法

申请单域名SSL证书&#xff0c;确保您的网站安全可信&#xff0c;只需简单三步&#xff1a; 选择证书类型与提供商&#xff1a;首先&#xff0c;确定您需要的单域名SSL证书类型&#xff0c;如DV&#xff08;域名验证&#xff09;证书。接着&#xff0c;选择一个信誉良好的证书提…

[003].第4节:RabbitMQ环境搭建

我的后端学习大纲 RabbitMQ学习大纲 1.rpm包方式搭建&#xff1a; 1.1.搭建RabbitMQ单体架构&#xff1a; 1.MQ下载地址2.这里是提前下载好后上传安装包到服务器得opt目录下&#xff1a; 3.安装MQ需要先有Erlang语言环境&#xff0c;安装文件的Linux命令(分别按照以下顺序安装…

喝酒上头的原因是什么?

酒精进入人体后&#xff0c;会被依次分解代谢成乙醛、乙酸&#xff0c;进而分解成二氧化碳和水&#xff0c;然后排出体外&#xff0c;这一代谢过程主要是依靠肝脏来进行的。如果代谢过程存在问题&#xff0c;那很有可能就会出现“上头”等不适症状。具体来说&#xff0c;主要与…

C++ 设计模式——简单工厂模式

简单工厂模式 简单工厂模式主要组成部分代码实现简单工厂模式模式的 UML 图简单工厂模式 UML 图解析优点和缺点适用场景 简单工厂模式 简单工厂模式是一种创建型设计模式&#xff0c;通过一个工厂类来负责对象的实例。这种模式将对象创建的细节封装在工厂类中&#xff0c;客户…

CAN通讯接口 8路电压电流模拟量采集模块DAM-C3054P

简介&#xff1a; DAM-C3054P为8路差分模拟量采集模块&#xff0c;16位AD&#xff0c;CAN通讯接口&#xff0c;支持CAN2.0A标准帧格式&#xff0c;支持CAN-OPEN协议。配备良好的人机交互界面&#xff0c;使用方便&#xff0c;性能稳定。 产品图片及尺寸&#xff1a; 指标参数…

2024网络安全学习路线,最全保姆级教程,学完直接拿捏!

关键词&#xff1a; 网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊&#xff0c;学习网络安全方向通常会有哪些问题 前排提示&#xff1a;文末有CSDN独家网络安全资料包&#xff01; 1、打基础时间太长 学基础花费很长时间&#xff0c;光语言都有…

机器学习|什么是梯度下降(小白向)|探寻最优解之路

文章目录 前言一、什么是梯度下降&#xff1f;二、梯度下降法一般步骤1.确定一个小目标——预测函数2.找到差距——代价函数3.明确搜索方向——梯度计算4.一步要走多远&#xff1f;——学习率 三、梯度下降的分类批量梯度下降&#xff08;Batch Gradient Descent&#xff09;随…

Java语言程序设计基础篇_编程练习题***16.31(游戏:四子连)

目录 题目&#xff1a;***16.31&#xff08;游戏&#xff1a;四子连&#xff09; 习题思路 代码示例 结果展示 题目&#xff1a;***16.31&#xff08;游戏&#xff1a;四子连&#xff09; 编程练习题8.20让两个玩家在控制台上可以玩四子连的游戏。为这个程序重写一个GUI版本…

Catf1ag CTF Web(八)

前言 Catf1agCTF 是一个面向所有CTF&#xff08;Capture The Flag&#xff09;爱好者的综合训练平台&#xff0c;尤其适合新手学习和提升技能 。该平台由catf1ag团队打造&#xff0c;拥有超过200个原创题目&#xff0c;题目设计注重知识点的掌握&#xff0c;旨在帮助新手掌握C…

数据结构----队列

1 什么是队列&#xff1f; 只允许在两端进行插入和删除操作的线性表&#xff0c;在队尾插入&#xff0c;在队头删除 插入的一端&#xff0c;被称为"队尾"&#xff0c;删除的一端被称为"队头" 在队列操作过程中&#xff0c;为了提高效率&#xff0…

开源通用验证码识别OCR —— DdddOcr 源码赏析(一)

文章目录 [toc] 前言DdddOcr环境准备安装DdddOcr使用示例 源码分析实例化DdddOcr实例化过程 分类识别分类识别过程 未完待续 前言 DdddOcr 源码赏析 DdddOcr DdddOcr是开源的通用验证码识别OCR 官方传送门 环境准备 安装DdddOcr pip install ddddocr使用示例 示例图片如…

Java语言程序设计——篇十五(3)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 欢迎大家&#xff1a;这里是我的学习笔记、总结知识的地方&#xff0c;喜欢的话请三连&#xff0c;有问题可以私信&#x1f333;&#x1f333;&…

450nm 高功率蓝光激光模组使用多长时间需要更换

450nm蓝光激光模组以其独特的波长特性和高功率输出&#xff0c;成为了市场上备受瞩目的产品。然而&#xff0c;对于用户而言&#xff0c;了解这类高功率激光模组的使用寿命及何时需要更换&#xff0c;是确保工作效率和设备安全性的重要环节。本文将带大家了解450nm 高功率蓝光激…

使用钉群发送告警通知

创建钉群&#xff0c;添加机器人 创建群 添加机器人并设置信息 需要注意的是设置“安全设置”时如果使用自定义关键词方式&#xff0c;那设置的内容必须要包含告警消息的内容 代码 模拟http请求发送通知 /*** param content 消息内容* param webhook 设置告警通知的群中机器…

6款局域网管理软件优选|企业网络安全管理必备!

局域网管理软件在提高工作效率、保障信息安全等方面发挥着越来越重要的作用。 本文将详细介绍六款市场上最受欢迎的局域网管理软件&#xff0c;帮助企业管理者更好地理解和选择适合自己的局域网管理工具。 一、局域网管理的重要性 一个高效运作的局域网不仅可以提升工作效率&…

动态内存管理申请调整和释放

动态内存管理存放在内存中的堆区中 动态内存分配的函数&#xff1a;malloc、calloc、realloc、free 动态内存分配 malloc函数&#xff08;内存申请空间&#xff09;无初始化free函数&#xff08;动态内存释放&#xff09;calloc函数&#xff08;内存空间申请&#xff09;初始化…

页面设计任务 个人简介页面

目录 任务要求 任务讲解 源码: 详细讲解 html部分 CSS部分 任务要求 页面结构: 创建一个基本的 HTML 页面&#xff0c;页面标题为“我的个人简介”。页面内容分为以下四个部分&#xff1a; 顶部导航栏: 包含至少三个导航链接&#xff0c;例如&#xff1a;“主页”、“关于…

OpenCV几何图像变换(2)计算仿射变换矩阵的函数getAffineTransform()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算三对对应点之间的仿射变换。 该函数计算 23 的仿射变换矩阵&#xff0c;使得&#xff1a; [ x i ′ y i ′ ] map_matrix ⋅ [ x i y i 1 …