中间件 - ElasticSearch

前言

6题。

为什么要用ES?

从mysql为什么不行来说

数据量大又涉及到模糊查询。

涉及到分词查询。

什么是倒排索引?

倒排索引其实就是分词查询

  1. 分词:把原始内容分词,分词后和原始文档有对应关系;

  2. 查询:根据分词可以获取到原始文档。

ES中的查询关键字有哪些(方法)?

  1. term :精确查询;
  2. match :分词查询(模糊查询);
  3. range :范围查询;
  4. bool :复合查询;

must与、should或、must_not非、filter

  1. geo_distance :地理位置查询。

ES中字符串类型有几个?

keywordTextkeyword类型是不会分词的,Text类型会分词。

ES中query和filter的区别?

都可以实现ES中的查询,区别是:

  1. query查询操作不仅仅会进行查询,还会计算分值;

  2. filter查询操作仅判断是否满足查询条件,不会计算任何分值,也不会关心返回的排序问题。

如何保证ES和MySQL的数据一致性?

有以下四种方式:

  1. 同步双写 :如果是分布式项目,通过fegin进行远程调用;

  2. 异步消息 :通过MQ发消息(微服务之间);

  3. canel监听 :使用canel监听MySQLbinlog日志,当发现写入操作后,立即读取内容,写入ES

  4. logstatsh :使用开源的数据搜索引擎logstatshMySQL中的数据实时传输给ES。

相关推荐
yanlele3 小时前
我用爬虫抓取了 25 年 6 月掘金热门面试文章
前端·javascript·面试
张先shen3 小时前
Elasticsearch RESTful API入门:基础搜索与查询DSL
大数据·spring boot·elasticsearch·搜索引擎·全文检索·restful
追逐时光者4 小时前
面试第一步,先准备一份简洁、优雅的简历模板!
后端·面试
古希腊被code拿捏的神7 小时前
【Flutter】面试记录
flutter·面试·职场和发展
小飞悟7 小时前
那些年我们忽略的高频事件,正在拖垮你的页面
javascript·设计模式·面试
嘻嘻哈哈开森8 小时前
技术分享:深入了解 PlantUML
后端·面试·架构
爱学习的茄子8 小时前
JavaScript闭包实战:解析节流函数的精妙实现 🚀
前端·javascript·面试
Dgua8 小时前
🚀Promise 从入门到手写:核心方法实现全指南
前端·面试
厚道8 小时前
Elasticsearch 的存储原理
后端·elasticsearch
Hilaku10 小时前
我为什么放弃了“大厂梦”,去了一家“小公司”?
前端·javascript·面试