谷粒商城项目|es的应用场景及常见问题

es是什么

es多被用于搜索聚合分析引擎
是分布式的可以高性能查询的引擎

es应用场景

为什么不用MYSQL而用es
es将数据存在内存中且可以分布式的存储数据
商品上架
商品在es中的保存
1.在es中建立索引
spu sku
spu sku保存在一起防止分布查询
为了防止对象数组扁平化,商品属性字段类型设为nested类型。
es数组的扁平化处理:es存储对象数组时,它会将数组扁平化,也就是说将对象数组的每个属性抽取出来,作为一个数组。因此会出现查询紊乱的问题。

2.将商品数据发送给es进行保存
使用bulk对商品数据进行批量保存实现上架

商品检索DSL语句
1.全文匹配关键字
使用bool查询 布尔查询是一个或多个查询子句的组合
must:必须匹配每个子查询,类似“与”。一般搭配match匹配,查text类型。
使用match语句
不用term term不进行分词
2.通过分类进行检索
使用filter对分类进行匹配
3.复杂查询 排序(价格排序)、过滤(区间)
区间检索 使用range 排序使用sort
使用search对商品进行查询

es相关面试题

1. 倒排索引流程:
分词:将每一个文档的数据利用算法分词,得到一个个词条;
映射关系表:创建分词和文档id的映射关系表;
词条–>id–>文档:搜索词条时,根据映射关系表找到它对应的所有文档id,然后根据文档id正向索引查到文档。
2. 怎么保证MySQL和ES一致性
使用消息队列:
使用消息队列(如Kafka、RabbitMQ)作为数据更新的中间件。
当对MySQL进行写操作时,将相同的数据变更事件发送到消息队列。然后,使用一个消费者服务从队列读取这些事件并更新到ES。
3.ElasticSearch为什么是近实时不是实时?如何保证实时?
当数据添加到索引后并不能马上被查询到,等到索引刷新后才会被查询到。 refresh_interval 配置的刷新间隔。默认是1s。
解决办法:
修改刷新间隔
设置刷新策略为立即刷新
说说ES集群的节点和分片
一个集群里有多个节点,每个节点都是一个es实例, 每个节点保存了自己的分片和一个其他节点备份的分片。
集群(cluster):一组拥有共同的 集群名 的 节点。
节点(node) :集群中的一个 Elasticearch 实例
分片(shard):索引可以被拆分为不同的部分进行存储,称为分片。在每次读写数据时,会根据文档ID%分片数量,得出具体访问分片的序号。在集群环境下,一个索引的不同分片可以拆分到不同的节点中。
解决问题:数据量太大,单点存储量有限、高可用的问题。
主分片(Primary shard):相对于副本分片的定义。主分片和副本分片会自动分配在各节点,
副本分片(Replica shard):每个主分片可以有一个或者多个副本,数据和主分片一样。主分片副本数 <= 节点数 - 1 。例如3个节点,则主分片有3个,每个主分片最多有2个副本,副本数可以动态扩展。
集群职责划分:实际场景,每个节点要细化角色,当然只搭建备选主节点也是可以的,默认情况下,集群中的任何一个节点都同时具备上述四种角色。
候选主节点(master eligible):管理集群状态,处理索引库增删请求。
数据节点(data):对记录的增删改查。
接待节点(ingest):数据存储前的预处理。
协作节点(coordinating):将请求路由其他节点,合并处理结果并返回。这样用户访问任何一个节点都能请求路由到数据实际存储分片所在节点。
集群脑裂问题以及为什么会出现
脑裂:master故障,集群选举出新master后旧master又恢复了,导致集群出现了两个master。

脑裂原因:

网络延迟导致误判:集群间的网络延迟导致一些节点访问不到master, 认为master 挂掉了从而选举出新的master,并对master上的分片和副本标红,分配新的主分片
主节点负载过高导致误判:主节点的角色既为master又为data,访问量较大时可能会导致ES停止响应造成大面积延迟,此时其他节点得不到主节点的响应认为主节点挂掉了,会重新选取主节点
主节点故障。
解决:
1.调大超时时间
2.将master与数据分离
6.什么是mapper
mapper包含字段名称、类型、是否创建索引等字段基本信息
7 全文检索
搜索时明确范围的搜索
检索是指检索相关性的内容
直接用like检索会扫描表 很慢
8.为什么不用B+树索引做全文检索
树的每一层查找都涉及磁盘IO比较慢
在这里插入图片描述
2.用%like% 不符合最左匹配原则 会失效

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NetDevOps:华三交换机通过Netmiko或者Nornir获取接口信息通过TextFSM解析报错问题

python代码&#xff1a;实现功能获取交换机接口信息并通过TextFSM进行解析。 from netmiko import Netmiko import textfsm show_intf_cmd_mapping {hp_comware: display interface, }def ssh_device_2_get_intfs(device_type, host, username, password, port):dev_info {d…

微机原理常考填空总结

hello大家好我是吃个西瓜嘤&#xff0c;这篇节只总结微机原理常考填空题都是干货展示常出现的易错点以及微机原理注意事项。 以下仅代表个人发言 #微机原理 正文开始&#xff1a; 1&#xff0c;区分JZ&#xff0c;JNZ技巧 也就是D70用JZ&#xff1b;D71用JNZ。 JZ;条件ZF1时…

LLM之RAG实战(十四)| 利用LongContextRetriver克服RAG中的中间丢失现象

人类和大型语言模型&#xff08;LLM&#xff09;都有一个共同的行为模式&#xff1a;他们往往擅长处理位于给定内容开头或结尾的信息&#xff0c;而中间的信息往往会被忽视。 来自斯坦福大学、加州大学伯克利分校和Samaya AI的研究人员在论文《Lost in the Middle: How Languag…

安装MySQL

采用ubuntu系统&#xff0c;安装MySQL5.7 安装 下载apt仓库文件 #下载apt仓库的安装包&#xff0c;Ubuntu的安装包是.deb文件 wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb配置apt仓库 #使用dpkg命令安装仓库dpkg -i mysql-apt-config_0.8.12-1_all.…

大模型实战营Day3 作业

基础作业&#xff1a; 复现课程知识库助手搭建过程 (截图) 进阶作业&#xff1a; 选择一个垂直领域&#xff0c;收集该领域的专业资料构建专业知识库&#xff0c;并搭建专业问答助手&#xff0c;并在 OpenXLab 上成功部署&#xff08;截图&#xff0c;并提供应用地址&#xf…

Nacos和Eureka比较、统一配置管理、Nacos热更新、多环境配置共享、Nacos集群搭建步骤

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Nacos和eureka的对比二、统一配置管理二、Nacos热更新方式一方式二 三、多环境配置共享四、Nacos集群搭建步骤&#xff08;黑马springCloud的p29&#xff0…

简单明了,汽车级LM317系列LM317D2TR4G线性电压稳压器电源设计-参数应用方案分享

低压差线性稳压器&#xff08;LDO&#xff09;&#xff0c;是指一种具有恒定电流输出电压的装置&#xff0c;主要由输入变压器、整流器、输出变压器三部分构成&#xff0c;工业原理为将输入的交流电压经过整流、滤波后得到直流输出电压&#xff0c;再经过控制元件和开关器件将稳…

暄桐写字计划 | 开始布局我们的2024

暄桐是一间传统美学教育教室&#xff0c;创办于2011年&#xff0c;林曦是创办人和授课老师&#xff0c;教授以书法为主的传统文化和技艺&#xff0c;皆在以书法为起点&#xff0c;亲近中国传统之美&#xff0c;以实践和所得&#xff0c;滋养当下生活。      暄桐林曦老师有…

【自译】【精华】MIT麻省理工学院技术双月刊(The Bimonthly MIT Technology Review)2024年1~2月【创新版块概览(一)】

导读&#xff1a; 今年是 《MIT技术评论杂志》 创刊125周年纪念年&#xff08;该杂志自1899年创刊&#xff09;&#xff0c;笔者将2024开年第1期&#xff08;1月~2月号&#xff09;的创新版块&#xff08;Innovation Issue&#xff09;中的重要内容进行梳理&#xff0c;获得近年…

紫光展锐M6780丨画质增强——更炫的视觉体验

智能显示被认为是推动数字化转型和创新的重要技术之一。研究机构数据显示&#xff0c;预计到2035年底&#xff0c;全球智能显示市场规模将达到1368.6亿美元&#xff0c;2023-2035年符合年增长率为36.4%。 随着消费者对高品质视觉体验的需求不断增加&#xff0c;智能手机、平板…

二十几种未授权访问漏洞合集

未授权访问漏洞是一个在企业内部非常常见的问题&#xff0c;这种问题通常都是由于安全配置不当、认证页面存在缺陷&#xff0c;或者压根就没有认证导致的。当某企业对外的服务端口、功能无限制开放&#xff0c;并且对用户的访问没有做任何限制的时候&#xff0c;可能会泄露出某…

JavaScript常用事件详解

一、用于form&#xff08;表单&#xff09;的事件 在网页中经常会遇到一些表单的验证&#xff0c;是通过事件进行处理的&#xff0c;比如用户输入用户名之后&#xff0c;及时显示用户是否被注册 用于form&#xff08;表单&#xff09;的事件 事件名功能 onblur 当元素失…

基于OpenCV的谷物颗粒识别

基于OpenCV的谷物颗粒识别 一、程序整体功能介绍1.1 导入库与函数定义1.2 颜色分割与灰度处理1.3 二值化与轮廓检测1.4 绘制与计数1.5 主程序与结果展示 二、算法原理与实现流程2.1算法原理&#xff08;1&#xff09;颜色分割&#xff08;2&#xff09;灰度处理与二值化&#x…

ubuntu安装node

1 下载 node 官网下载 如果需要其他版本&#xff0c;点击上图的Other Downloads 这里下载的版本是20.11.0 Linux Binaries (x64)&#xff0c;下载下来后是node-v20.11.0-linux-x64.tar.xz这样的格式&#xff0c;直接右键解压得到如下目录&#xff1a; 直接拷贝该文件夹到指定目…

哈希表的实现(1)----除留余数法实现

一&#xff0c;哈希表的介绍 哈希表是一种通过哈希思想实现的一种数据结构。哈希表这种数据结构的特点便是可以通过一个值快速的定位这个值所在的位置实现插入&#xff0c;删除&#xff0c;查找。在这篇博客里面&#xff0c;我们便来实现一个通过除留余数法实现的一个哈希表。 …

Alibaba-> EasyExcel 整理3

1 导入依赖 <!-- easyExcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version >3.2.1</version><exclusions><exclusion><artifactId>poi-ooxml-schemas</art…

基于SpringBoot+Vue实现的二手交易系统

系统介绍 校园二手交易网站是一种专门针对有二手物品交易需求用户的二手交易的网站。它的设计和开发主要是为了满足用户之间的二手物品交易需求&#xff0c;方便大家在线买卖二手物品。近年来&#xff0c;随着互联网技术的发展&#xff0c;人们越来越喜欢在线购物&#xff0c;…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-6 线性控制器设计Linear Controller Design

本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-6 线性控制器设计Linear Controller Design

31 树的存储结构一

无法直接用数组表示树的逻辑结构&#xff0c;但是可以设计结构体数组对节点间的关系进行描述&#xff1a;【如表】 这样做的问题&#xff1a; 可以利用 组织链表 parent指针&#xff1a; 注意&#xff1a;树结点在 组织链表 中的位置不代表树的任何逻辑关系 树的架构图&#xf…

软件测试|使用Python抓取百度新闻的页面内容

简介 作为技术工程师&#xff0c;在繁忙的工作中我们不一定有时间浏览发生的热点新闻&#xff0c;但是懂技术的我们不需要访问网站来看当下发生的大事&#xff0c;我们可以使用网络爬虫的技术来获取当下最新最热的新闻&#xff0c;本文就来介绍一下使用Python抓取一下百度新闻…