项目中使用Elasticsearch的API相关介绍

项目中使用Elasticsearch的API相关介绍

0、域映射类型

text:会分词,不支持聚合对当前搜索关键词,先自身分词,分成多个词,然后去一个一个的词去利用倒排索引去查询es索引库一般应用在搜索关键字匹配的字段的类型。 商品的title,name。keyword:不会分词,将全部内容作为一个词条,支持聚合对当前关键字不进行分词,输入的是“华为手机”,就只查包含有华为手机的词一般应用在搜索商品的属性的时候,可以用keyword作为类型。

1、bulk操作

示例:

restHighLevelClient.bulk(bulKRequest, RequestOptions.DEFAULT);

bulk表示批处理,进行批量新增,批量修改,批量删除等操作的API

bulk方法中有两个参数

  • 参数1表示批处理请求,-------查看2
  • 参数2表示默认请求选项,直接默认即可

2、BulkRequest类

示例:

BulkRequest bulKRequest=new BulkRequest("app_info_article");IndexRequest indexRequest=new IndexRequest().id(xxx).source(JSON.toJSONString(xx), XContentType.JSON);
bulKRequest.add(indexRequest);

BulkRequest表示批处理请求类,其本质就是将多个普通的CRUD请求组合在一起发送。

其中提供了一个add方法,用来添加其他请求:

在这里插入图片描述

可以看到,能添加的请求包括:

  • IndexRequest,也就是新增
  • UpdateRequest,也就是修改
  • DeleteRequest,也就是删除

3、search操作

示例:

highLevelClient.search(searchRequest, RequestOptions.DEFAULT);

表示从es中搜索查询的api方法

其中有两个参数:

  • 参数1表示搜索请求对象,------查看4
  • 参数2表示默认请求选项,直接默认即可

4、SearchReuqest对象类

示例:

SearchRequest searchRequest=new SearchRequest("app_info_article");

该对象表示用于与搜索文档、聚合、定制查询有关的任何操作,还提供了在查询结果的基于上,对于匹配的关键词进行突出显示的方法。

参数表示指定索引库名称

该参数是一个不定长的参数,表示可以操作多个索引库。

SearchRequest提供了source方法,用来进行聚合查询条件

searchRequest.source(searchsourceBuilder);

5、SearchSourceBuilder对象类

示例:

 SearchSourceBuilder searchsourceBuilder=new SearchSourceBuilder();

SearchSourceBuilder表示搜索内容参数设置对象,此类用来设置查询条件

该类下包含很多方法其中包含:

  • query 查询方法
searchSourceBuilder.query(boolQueryBuilder);
  • highlighter 高亮方法
  HighlightBuilder highlightBuilder=new HighlightBuilder();highlightBuilder.field("title");highlightBuilder.preTags("<font style='color: red; font-size: inherit;'>");highlightBuilder.postTags("</font>");
searchSourceBuilder.highlighter(highlightBuilder);
  • sort 排序方法
 searchSourceBuilder.sort("publishTime", SortOrder.DESC);
  • from和size 分页方法
 searchSourceBuilder.from(0);searchSourceBuilder.size(dto.getPageSize());

6、BoolQueryBuilder对象类

示例:

 BoolQueryBuilder query=QueryBuilders.boolQuery();QueryStringQueryBuilder queryBuilder = QueryBuilders.queryStringQuery(dto.getSearchWords()).field("title").field("content").defaultOperator(Operator.OR);query.must(queryBuilder);

表示创建布尔查询构建类。

布尔查询是一个或多个查询子句的组合,每一个子句就是一个子查询。子查询的组合方式有:

  • must:必须匹配每个子查询,类似“与”
  • should:选择性匹配子查询,类似“或”
  • must_not:必须不匹配,不参与算分,类似“非”
  • filter:必须匹配,不参与算分

7、queryStringQuery操作

示例:

 QueryStringQueryBuilder queryBuilder = QueryBuilders.queryStringQuery(dto.getSearchWords()).field("title").field("content").defaultOperator(Operator.OR);

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

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

相关文章

内存函数:memcpy(拷贝),memmove(拷贝),memcmp(比较),memset(设置)

内存函数 一.memcpy&#xff08;内存拷贝1&#xff09;1.函数使用2.模拟实现 二.memmove&#xff08;内存拷贝2&#xff09;1.函数使用2.模拟实现 三.memcmp&#xff08;内存比较&#xff09;1.函数使用2.模拟实现 四.memset&#xff08;内存设置&#xff09;1.函数使用2.模拟实…

umi项目运行时配置,app.ts

运行时配置和配置的区别是他跑在浏览器端&#xff0c;基于此&#xff0c;我们可以在这里写函数、tsx、import 浏览器端依赖等等&#xff0c;注意不要引入 node 依赖。 getInitialState 用于获取初始化数据&#xff0c;初始化数据使用 useModel 在各个组件中使用&#xff0c;在…

会员网站如何创建具有不同仪表盘结构的用户帐户页面

用户帐户页面是中央用户仪表盘&#xff0c;用户可以在其中添加和编辑信息、发布和编辑帖子以及保存收藏夹项目。本教程介绍如何使用“内容”和“重写”模板模式设置帐户页面、为帐户页面创建子页面以及设置个人资料菜单等。 在本教程中&#xff0c;我们将介绍如何使用招聘网站…

英语单词量测试

网址&#xff1a;https://preply.com/en/learn/english/test-your-vocab 测试结果&#xff1a; 细节&#xff1a;英语母语者有20000-35000个单词的词汇量&#xff0c;8岁孩子的词汇量在8000个左右。而不是我们教育系统里说的&#xff0c;6000个单词足够用了。足够用&#xff0…

线上剧本杀小程序开发,探索剧本杀行业的巨大发展空间

剧本杀是当下非常流行的桌游&#xff0c;也是一种新型的社交游戏方式&#xff0c;受到了众多玩家的关注&#xff0c;成为年轻人社交游戏的首选方式。目前&#xff0c;剧本杀玩家开始迷上了线上剧本杀&#xff0c;剧本杀也在线上获得了新的发展&#xff0c;让市场发展摆脱了空间…

大数据信用黑名单是如何形成的?有什么影响?

随着大数据技术的发展&#xff0c;一种新型的信用风险评估工具应运而生——大数据信用报告。而大数据信用黑名单由大数据算法自动生成&#xff0c;旨在识别和监控特定个体或群体的信用风险。大数据信用黑名单是如何形成的?有什么影响呢?本文带大家一起去认识一下&#xff0c;…

Colab/PyTorch - 004 Torchvision Semantic Segmentation

Colab/PyTorch - 004 Torchvision Semantic Segmentation 1. 源由2. 语义分割 - 应用2.1 自动驾驶2.2 面部分割2.3 室内物体分割2.4 地理遥感 3. 语义分割 - torchvision3.1 FCN 使用 ResNet-101 语义分割3.1.1 加载模型3.1.2 加载图像3.1.3 预处理图像3.1.4 网络的前向传播3.1…

谷歌 I/O 2024大会全面硬钢OpenAI;腾讯宣布旗下的混元文生图大模型;阿里巴巴技术下的AI自动视频剪辑工具

✨ 1: 谷歌 I/O 2024 谷歌 I/O 2024 发布了众多新技术&#xff0c;包括 Gemini AI、大语言模型和通用 AI 智能体等&#xff0c;全面颠覆搜索体验。 谷歌 I/O 2024发布会带来许多令人兴奋的新功能和技术创新&#xff1a; Gemini 1.5 Pro&#xff1a;一个极其强大的语言模型&am…

python循环结构练习

目录 前言 1、使用while实现模拟用户登录 1.1 题目要求 1.2 解题 2、输入数字&#xff0c;生成对应等腰三角形 2.1 题目要求 2.2 解题 3、输入数字&#xff0c;生成对应的菱形 3.1 题目要求 3.2 解题 总结 前言 本系列主要是讲解python中的题目&#xff0c;目的是为…

短视频赛道有哪些:成都鼎茂宏升文化传媒公司

短视频赛道有哪些&#xff1a;探索多元化的内容领域 随着科技的飞速发展和人们生活节奏的加快&#xff0c;短视频已成为现代人生活中不可或缺的一部分。它以其简短、直观、易于分享的特点&#xff0c;迅速占领了各个年龄层和社会群体的心智。然而&#xff0c;短视频的赛道并非…

项目管理表格-项目总体计划(项目管理-项目经理干货资料Excel)

项目管理总体计划模板 1、项目基本信息 2、项目里程碑 3、项目干系人 4、项目团队组织架构管理 5、项目预算管理 6、项目项目任务计划管理 7、问题及风险管理 8、项目周报 9、项目相关要求 软件项目相关全套精华资料包获取方式①&#xff1a;点我获取 获取方式②&#xff1a;本…

打造数字基座:一场重塑未来教育的浩瀚远征

近两年,随着大模型的崛起,ChatGPT、Sora等应用的爆火,以人工智能为代表的新技术正快速地改变着全球经济和社会发展的节奏。教育作为人才培养的重要途径,在推动新质生产力发展的同时也必须实现自身的创新蜕变。 国家教育数字化战略行动已经来到了第三个年头。在科技革命和教育变…