SpringCloud微服务04-Elasticsearch-DSL查询-聚合

news2024/10/7 8:22:35

一、Elasticsearch

搜索引擎,响应速度非常快,特别是对大数据量的情况

1.初始elasticsearch

 

如果只需要商品搜索,百度这种搜索网站,只需要第二个就够了

docker部署:day08-Elasticsearch - 飞书云文档 (feishu.cn)

es是restful的接口,只要发http请求就可以访问到它。

想要可视化还要安装Kibana:

由于es直接使用http请求访问接口,不方便记不住路径,使用kibana:

Tools有提示,且方便

①倒排索引

使用id索引搜索的话它把id放入B+树,可以很快查询到目标,但是不使用id且模糊搜索就会一条一条进行判断,速度很慢

两次搜索,第一次是目标分词后的文档id,再根据文档id查询到所需目标

②IK分词器

中文语义没有空格,分词外国人干不好

ik中包含了词典,ik会遍历你的句子两个两个遍历词典中有就是一个词,然后三个三个

词典可能已经落后了,自定义词典后就可以被分词了

③基础概念

它会把相同类型的放入一起,可以称为索引库

dsl就是类似之前查询分词结果的搜索方式:使用JSON语句进行搜索

2.索引库操作

①Mapping映射属性

字符串中keyword指那些不能被分词的内容,分词了就没有意义了:例如比亚迪
有根据它搜索和排序的需求就需要设置index为true
analzer是有分词的需求
properties是会有嵌套的属性

②索引库操作

3.文档操作

①文档CRUD

新增:

修改一种是使用PUT,如果存在id它会删除原来的再添加
如果需要只修改某些字段就采用POST

②批处理

这里可以一次进行多次增删改

4.JavaRestClient

在java中向es发送请求

①客户端初始化

②商品Mapping映射

PUT /items
{
  "mappings": {
    "properties": {
      "id": {
        "type": "keyword"
      },
      "name":{
        "type": "text",
        "analyzer": "ik_max_word"
      },
      "price":{
        "type": "integer"
      },
      "stock":{
        "type": "integer"
      },
      "image":{
        "type": "keyword",
        "index": false
      },
      "category":{
        "type": "keyword"
      },
      "brand":{
        "type": "keyword"
      },
      "sold":{
        "type": "integer"
      },
      "commentCount":{
        "type": "integer",
        "index": false
      },
      "isAD":{
        "type": "boolean"
      },
      "updateTime":{
        "type": "date"
      }
    }
  }
}

③索引库操作

其中MAPPING_TEMPLATE就是这个请求中的参数,请求参数放入“”中

④文档操作

新增文档:

mysql中有商品数据,可以从中取出来放入es

删除文档:

查询文档

使用hutu工具包可以将json类容转化为对象

修改文档:

⑤批处理

二、Elasticsearch查询

1.DSL查询

①快速入门

响应结果中并不会包含索引库中的所有文档,而是仅有10条。这是因为处于安全考虑,elasticsearch设置了默认的查询页数。

②叶子查询

全文检索就是之前提到的倒排索引

全文检索:

第二个意思是查询“FIELD1”,“FIELD2”中是否有TEXT的内容

全文检索会给结果进行打分,分越高就代表匹配度越高

精确查询:

③复合查询

must和should参与算分,filter也是与但是不参与算分

④排序和分页

排序

分页

深度分页

要找出前1000名就需要每一片的1000名拿出来进行排序得到全部的1000名。

但是这样就出现一个问题,搜索数据量越大,我要10000名就得每片都去排出前10000名

search after就是每一页排序后,拿到最后的排序值,第二页可以就根据这个排序值重新开始查找高于或低于这个排序值的目标,这样每一页都是重新开始查询,就不会出现深度查询

但是不适合随机翻页,原始查询就会设置页码上限避免深度分页

⑤高亮显示

2.JavaRestClient

①快速入门

source中就是构建查询条件

QueryBuilders包含了所有的查询细节

②构建查询条件

全文检索:

精确查询:

复合查询(bool):

③排序和分页

④高亮显示

3.数据聚合

①DSL聚合

Bucket聚合

size会返回这个大小的目标,数量最多的才会显示

度量聚合

②RestClient聚合

聚合三要素:聚合类型,聚合名称,聚合字段

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我爱我家:租赁下位替代买房,能行吗?

我爱我家,凭什么五天四板? 上周五的楼市组合拳出台后,地产板块迎来高潮。 这其中最火的不是我们常说的“招宝万金”,而是——我爱我家。 五天四板,一个月不到,股价轻松翻翻。 公司有什么变化吗&#xff1…

蓝桥杯嵌入式国赛笔记(2):拓展板按键程序设计

目录 1、前言 2、电路原理 3、代码编写 3.1 读取Btn电压 3.2 检索按键 3.3 main文件编写 3.3.1 进行变量定义 3.3.2 AD_Key函数 3.3.3 LCD函数 3.3.4 main函数 3.3.5 完整代码 4、测试 5、总结 1、前言 本文进行拓展板按键程序设计,拓展板的按键是通…

分布式事务解决方案(强一致性)

强一致性事务概述 分布式事务领域,最早采用的是符合CAP理论的强一致性事务方案来解决分布式事务问题,强一致性分布式事务要求在任意时刻查询参与全局事务的各个节点的数据都是一致的 典型案例: 包括DTP模型(全局事务模型&#x…

【Crypto】MD5

文章目录 MD5解题感悟 MD5 提示的很明显MD5 小小flag,拿下! 解题感悟 没啥感悟…

LLM 大模型学习必知必会系列(十一):大模型自动评估理论和实战以及大模型评估框架详解

LLM 大模型学习必知必会系列(十一):大模型自动评估理论和实战以及大模型评估框架详解 0.前言 大语言模型(LLM)评测是LLM开发和应用中的关键环节。目前评测方法可以分为人工评测和自动评测,其中,自动评测技术相比人工…

android14上使用frida,

由于之前使用frida已经是2年前了,后来一直没有研究两年以后 首先手机得root才可以, 我使用的是一加9pro, root方法参考一加全能盒子、一加全能工具箱官方网站——大侠阿木 (daxiaamu.com)​编辑https://optool.daxiaamu.com/index.php 由于之前使用的是frida 15.1.1在and…

Amesim示例篇-案例1:空间中的铝块散热

前言 本文将通过一个案例继续对Thermal库的元件进一步讲解。 案例1:一个300mm*300mm*1000mm(长*宽*高)的铝板初始温度为45℃,竖直在环境为25℃的空间内静置60min。对流换热系数设置为5W/m2K。本文将通过两种建模方法对铝块的温度…

微软刚发布的Copilot+PC为什么让Intel和AMD尴尬?2024 AI PC元年——产业布局及前景展望

美国东部时间5月20日在微软位于华盛顿的新园区举行的发布会上,宣布将旗下AI助手Copilot全面融入Windows系统,能够在不调用云数据中心的情况下处理更多人工智能任务。 “将世界作为一个提示词就从Windows系统开始”。微软的新PC将是“CopilotPC”&#xf…

树洞陪聊系统源码/陪聊/陪玩/树洞/陪陪/公众号开发/源码交付/树洞系统源码

独立版本源码交付,自研UI和前后端代码 平台自带店员,无需自主招募,搭建直接运营 支持三方登录,官方支付、虎皮椒、易支付/码支付 支持首单体验、盲盒订单、指定下单等多个模式 支持钱包预充值、店员收藏、订单评价等功能 支持…

You must call removeView() on the child‘s parent first.异常分析及解决

问题描述 对试图组件快速的左右滑动过程,发现某一张图片没加载出来,偶现crash 问题分析 view在上次已经是某个ParentView的child,然而现在又把它做为另外一个view的child,于是出现一个view有两个parent。所以就产生了这个错误。…

深入了解Python代码中的缩进与逻辑结构

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、认识缩进在代码中的重要性 代码示例:天气与打球决策 二、缩进与逻辑嵌套 …

uniapp使用内置的switch组件的问题

说明 开关选择器 属性说明 属性名类型默认值说明平台差异说明checkedBooleanfalse是否选中disabledBooleanfalse是否禁用不支持:抖音小程序、飞书小程序typeStringswitch 样式 有效值:switch、checkbox colorColorswitch的颜色,通css的co…

Tensorflow入门实战 P01-实现手写数字识别mnist

目录 1、背景:MNIST手写数字识别 2、完整代码(Tensorflow): 3、运行过程及结果: 4、小结(还是很清晰的) 5、 展望 🍨 本文为🔗365天深度学习训练营 中的学习记录博客…

摔到脑袋,没有骨折,没有脱位,脊髓怎么会损伤?

在一个周末的午后,小明在公园的足球场上不慎摔倒,头部重重撞到草地。虽然很快恢复了意识,但回家后却感到颈部僵硬,四肢无力。家人急忙带他前往医院就医做了相关检查。 经过医生的仔细检查,结果显示小明的头部没有骨折或…

《暮色将尽》跨越世纪的历程,慢慢走向并完善自我

《暮色将尽》跨越世纪的历程,慢慢走向并完善自我 戴安娜阿西尔(1917-2019),英国知名文学编辑、作家。著有《暮色将尽》《昨日清晨》《未经删节》《长书当诉》等。 曾嵘 译 文章目录 《暮色将尽》跨越世纪的历程,慢慢走…

FastGPT私有化部署+OneAPI配置大模型

介绍 FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景! 官网地址 https://doc.fastai.site/docs/intro/ 部署 FastGPT提供…

atomic包装自定义类型

在学习原子变量之初,学过很多它的操作,但是很多都是在内置类型(int、long等)上进行的学习和实验。这次由于工作需要,要使用 atomic 来包装自定义类型,因此打算好好探究一番,把它彻底搞懂。 当要…

iOS系统故障怎么办?这三种苹果手机系统修复方法你一定要知道

随着苹果手机使用时间越长,苹果手机有时也会出现系统问题,如卡顿、崩溃、无法启动等。这些问题不仅影响用户的使用体验,还可能导致数据丢失。因此,掌握苹果手机系统修复方法显得尤为重要。本文将详细介绍苹果手机系统修复的常见方…

冯喜运:5.24今日晚间黄金原油行情如何操作

【黄金消息面分析】:在经历了连续两个交易日的大幅下跌后,黄金市场在北京时间5月24日欧市早盘迎来了反弹。金价目前位于2338美元/盎司附近,市场对此轮波动表现出浓厚的兴趣。本文将深入分析黄金市场的最新动态,探讨其背后的逻辑&a…

非阻塞sokcet和epoll

在Muduo网络库中同时使用了非阻塞socket与epoll,在此简单梳理下。 非阻塞sokcet和epoll共同工作的过程主要涉及网络编程中的非阻塞I/O和事件驱动机制。下面将详细解释这两者如何协同工作: 非阻塞socket简介 在传统的阻塞socket编程中,当调用…