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

这篇具有很好参考价值的文章主要介绍了谷粒商城项目|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比较慢
谷粒商城项目|es的应用场景及常见问题,谷粒商城,elasticsearch,大数据,搜索引擎
2.用%like% 不符合最左匹配原则 会失效文章来源地址https://www.toymoban.com/news/detail-799010.html

到了这里,关于谷粒商城项目|es的应用场景及常见问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES常见问题(1)-解决ElasticSearch每次只能返回10条数据

    使用ElasticSearch查询分页数据 有时候,我们需要使用ElasticSearch来分词查询,并分页返回指定的数据条数,但是当我们每次想得到分页数据条数超过十条的时候,ElasticSearch总是只能返回十条 因为ElasticSearch为了查询的速度,在默认的情况下已经设置了分页数据只能返回10条,所

    2024年02月11日
    浏览(43)
  • 谷粒商城笔记+踩坑(9)——上架商品spu到ES索引库

    导航: 谷粒商城笔记+踩坑汇总篇 目录 1、ES回顾 2、ES整合商品上架  2.1、分析 2.2、创建sku的es索引库 2.2.1、两种索引库设计方案分析 2.2.2、最终选用的索引库方案,nested类型 2.3、SkuEsModel模型类 2.4、【库存模块】库存量查询 2.5、【查询模块】保存ES文档 2.5.1、常量类 2.5.2、

    2024年02月05日
    浏览(51)
  • 项目经理岗面试常见问题

    一、注意事项   ·电面邀约确认(避免hr刷KPI): 请问贵司招聘的是什么岗位,是新建团队还是原有团队? 这边面试流程是怎样的,是 leader 直接面,还是?   ·面试前铺垫: 如果您对某部分感兴趣,请随时打断我。   ·面试中发挥: 尽量采用 STAR 原则回答,即 情境( Si

    2024年02月05日
    浏览(47)
  • RabbitMQ常见的应用问题

    在实际生产环境中,可能会由于网络问题导致消息接收异常产生某种影响,基于这种情况我们需要保障消息的可靠性。 RabbitMQ中的消息可靠性也称为消息补偿,如下图所示,可以保证消息的可靠性。 分为9种种步骤实现消息补偿 1、生产者处理业务逻辑,将数据写入到数据库。

    2024年02月11日
    浏览(53)
  • openshift应用上云常见问题

    解决方式:到对应节点ping镜像仓库域名看是否能ping通,如果不能ping通,查看/etc/resolv.conf是否配置本地IP和search项,重启dnsmasq服务等。 问题原因:查看异常节点SDN的IP分配情况,如果是因为SDN释放IP异常导致IP分配满了,当前目录下IP文件会非常多。ls -l /var/lib/cni/networks/open

    2024年02月05日
    浏览(42)
  • 面试前端常见项目问题回答参考

    目录 问题一:描述一个你在前端项目中遇到的挑战,并说明你是如何解决。 问题二:如何保证前端项目代码质量和可维护性? 问题三:如何进行跨浏览器测试,确保一致的用户体验? 问题四:请描述你在前端项目中进行性能优化的经验。 问题五:请描述一个你在前端项目

    2024年04月14日
    浏览(63)
  • 【FFMPEG应用篇】使用FFmpeg的常见问题 拼接视频的问题

    在使用ffmpeg进行视频拼接时,可能会遇到一些常见问题。以下是这些问题及其解决方法: 1. 视频格式不兼容:如果要拼接的视频格式不同,ffmpeg可能会报错。解决方法是使用ffmpeg进行格式转换,将所有视频转换为相同的格式,然后再进行拼接。 2. 视频编解码器不匹配:如果

    2024年02月13日
    浏览(38)
  • 【解决】Spring Boot创建项目常见问题

    🎥 个人主页:Dikz12 🔥个人专栏:Spring学习之路 📕格言:吾愚多不敏,而愿加学 欢迎大家👍点赞✍评论⭐收藏 目录 idea无maven选项  无效发行版17  类⽂件具有错误的版本 61.0, 应为 52.0  Maven jar 包下载失败问题处理 1.检查配置Maven源 正确的settings.xml⽂件(配置了国内源)

    2024年04月25日
    浏览(39)
  • 【Android常见问题(五)】- Flutter项目性能优化

    项目迭代开发一定程度后,性能优化是重中之重,其中包括了包体积,UI 渲染、交互等多个方面。 通过 Flutter 应用的混淆为入口,我们主要探讨了UI 渲染的优化。 其中就会涉及到一个非常关健的概念 ——「FPS,Frame Per Second」即「每秒展示帧数」,它代表了应用的流畅度。

    2024年02月15日
    浏览(53)
  • 实际开发中,React应用常见问题【持续更新中】

    实际开发中,React应用常见问题【持续更新中】 “react-router-dom”: “^6.14.2”, “react”: “^18.2.0”, 1、监听路由 2、路由编程式导航 useNavigate() 3、路由链接导航

    2024年02月15日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包