拓冰建站拓冰建站
首页 / 资讯中心 / 正文

elastic-search

黑马es【微服务】Elasticsearch概述环境搭建(一)黑马 cloud hm-cloud 全 springcloud -es mq 缓存 分布式事务黑马 cloud 学习ElasticSearch8 黑马万字笔记尚硅谷es-7硅谷 笔记如果你觉得 ES 的 JavaAPI 中的高级文档查询很难用不妨稍微封装一下把繁琐的过程封装了一下更能凸显本质。笔记地址硅谷笔记地址代码代码二、es 面试2.1 es 深度分页问题from990 size10,首先 取每个分片的前1000条。聚合所有结果重新排序取前1000条最后对前1000条数据进行截取截取前990-1000的部分因此es 对结果集的上限是 10000解决方案search after 分页时先排序原理时从上一次的排序值开始查询下一页数据分页 前1-10查10-20时记住第十条的数据因此往后i查 过滤前10条数据。缺点只能查询 往后查询 不能往前查询scroll 原理将排序数据形成快照保存在内存。缺点内存占用大形成的是快照更新是快照是旧数据。2.2 es 原理2.2.1 倒排索引 搜索文档切分 分词每个分词 都是term。 term 按照字典序 排序 得到term dictionary2 分查询 O(logn)2.2.2 term index 加速搜索词项 和词项 有相同前缀前缀提取出来复用term index是term 的前缀树2.2.3 store fields 存放文档原始信息存放term 的原始信息2.2.4 doc values 排序 和聚合2.2.5 segments 上面4个组合起来2.2.6 es 查询过程query phase客户端发器查询首先到 coordinate node根据 index name 了解到被分为了几个分片以及分片分散在哪个数据node 上将请求转发到这些数据节点 的分片上搜索请求 到达分片后分片底层的lucene 会并发搜索多个 segment例用每个segment 的 倒排索引技术得到 文档id 根据doc values得到排序信息。分片 将结果 聚合返回给协调节点。协调节点 对多个 分片中 拿到的数据 进行排序 聚合。fetch phase协调 节点 再次拿着文档id去请求 分片节点分片底层的lucene 库 会从 segment 内的stores fiels读取出完整的文档内容返回给协调节点。最后返回客户端。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门