中间件 - 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。

相关推荐
晨非辰38 分钟前
【数据结构入坑指南】--《层序分明:堆的实现、排序与TOP-K问题一站式攻克(源码实战)》
c语言·开发语言·数据结构·算法·面试
Moment1 小时前
快手前端校招一面面经 🤔🤔🤔
前端·javascript·面试
极限实验室2 小时前
搜索百科(5):Easysearch — 自主可控的国产分布式搜索引擎
elasticsearch·搜索引擎
绝无仅有2 小时前
猿辅导Java面试真实经历与深度总结(三)
后端·面试·github
绝无仅有2 小时前
猿辅导MySQL面试常见问题解析(一)
后端·面试·github
Jeled12 小时前
AI: 生成Android自我学习路线规划与实战
android·学习·面试·kotlin
我是华为OD~HR~栗栗呀14 小时前
华为od-22届考研-测试面经
java·c++·python·功能测试·华为od·华为·面试
Python算法实战16 小时前
腾讯送命题:手写多头注意力机制。。。
人工智能·算法·面试·大模型·强化学习
扁豆的主人16 小时前
Elasticsearch
大数据·elasticsearch·jenkins
讨厌吃蛋黄酥16 小时前
🔥 JavaScript异步之谜:单线程如何实现“同时”做多件事?99%的人都理解错了!
前端·javascript·面试