当前位置: 首页 > wzjs >正文

10个零网站建设中文手机网站设计案例

10个零网站建设,中文手机网站设计案例,网站集约化建设讲话,网站推广常用方法有哪些Elasticsearch 写入数据的工作原理 1. 写入流程概述 当客户端向 Elasticsearch 发送写入请求时,会经历以下步骤: 客户端选择一个节点 作为 coordinating node(协调节点),发送请求。协调节点对文档进行路由&#xff…

Elasticsearch 写入数据的工作原理

1. 写入流程概述

当客户端向 Elasticsearch 发送写入请求时,会经历以下步骤:

  1. 客户端选择一个节点 作为 coordinating node(协调节点),发送请求。
  2. 协调节点对文档进行路由,根据文档 ID 计算哈希值,确定其应该存储在哪个 primary shard 上。
  3. Primary shard 处理请求,然后将数据同步到所有的 replica shard。
  4. 当 primary 和所有 replica 完成后,协调节点向客户端返回写入成功的响应。
2. 写入的底层机制
  1. 数据先写入内存 buffer,此时数据不可搜索。
  2. 同时写入 translog 日志文件,防止宕机时数据丢失。
  3. 定期执行 refresh(默认 1s),将 buffer 中的数据写入 segment 文件,并存储在 os cache 中,使其可搜索。
  4. 当 translog 过大或默认 30 分钟触发 flush,将数据真正持久化到磁盘上的 segment 文件,并清空 translog。
  5. Segment merge:ES 会定期合并小 segment,减少查询时的开销,但 merge 过程可能影响写入性能。

这就是为什么 Elasticsearch 是 Near Real-Time (NRT),因为数据写入后 1s 之内才能被搜索到。


Elasticsearch 查询数据的工作原理

1. 通过 doc_id 进行查询
  1. 客户端发送查询请求到任意节点(coordinating node)。
  2. 协调节点基于 doc_id 计算哈希,找到存储该文档的 shard。
  3. 随机选择 primary 或 replica shard 进行查询(采用 round-robin 负载均衡)。
  4. 查询结果返回给协调节点,然后再返回给客户端。
2. 全文检索过程(搜索 query)

全文检索是 Elasticsearch 的核心功能,比如搜索 java,ES 会返回所有包含 java 的文档。

  1. 客户端发送搜索请求到协调节点
  2. 协调节点将查询分发到所有 primary 或 replica shard
  3. Query Phase: 每个 shard 返回匹配的 doc_id 列表。
  4. Fetch Phase: 协调节点根据 doc_id 读取文档,合并、排序、分页,并返回最终结果。
3. 查询优化机制

为了提升查询效率,Elasticsearch 采用多种优化策略:

  • Query Cache:对于相同的查询,缓存结果,减少重复计算。
  • Shard Preference:优先查询特定的 shard,避免不必要的 IO 负担。
  • Index Sorting:在索引阶段提前排序,提高查询时的效率。

倒排索引:Elasticsearch 的核心

倒排索引是搜索引擎最重要的数据结构,它允许快速查询包含某个关键词的文档。

1. 倒排索引的基本原理

示例文档:

DocId文档内容
1谷歌地图之父跳槽 Facebook
2谷歌地图之父加盟 Facebook
3谷歌地图创始人拉斯加盟 Facebook

建立倒排索引:

关键词文档 ID 列表
谷歌1,2,3
地图1,2,3
之父1,2
加盟2,3
Facebook1,2,3

当用户搜索 Facebook,Elasticsearch 直接从索引中查找包含 Facebook 的文档 ID,返回搜索结果。

倒排索引的两个特点:

  1. 所有词项对应一个或多个文档 ID。
  2. 词项按照字典顺序存储,便于快速查找。
2. 倒排索引的优化

Elasticsearch 采用多种方法优化倒排索引,提高查询效率:

  • 跳表(Skip List):在索引中添加跳跃指针,减少查询时的遍历开销。
  • 布隆过滤器(Bloom Filter):快速判断某个 term 是否存在,减少不必要的磁盘 IO。
  • 前缀压缩:相同前缀的词合并存储,减少索引大小,提高查找效率。

总结

  • 写入数据时,Elasticsearch 先写入内存 buffer 和 translog,定期 refresh 让数据可搜索,commit 触发 flush 持久化数据,同时进行 segment merge。
  • 查询数据时,可通过 doc_id 查询或全文搜索,搜索采用倒排索引来提高性能,并使用 query cache、index sorting 等优化查询效率。
  • 倒排索引是 Elasticsearch 的核心数据结构,它将关键词映射到文档,支持高效的全文搜索,同时通过跳表、布隆过滤器、前缀压缩等方式优化性能。

理解这些原理后,你就不再把 Elasticsearch 当作黑盒,而是可以更深入地优化查询、调整参数,提升搜索性能!

http://www.dtcms.com/wzjs/577204.html

相关文章:

  • 洞口网站开发公司推荐聊城网站改版
  • 可以做微商的网站虚拟网站怎么做的
  • 定制做网站费用旅游网站模板免费下载
  • 网站改版 重定向沈阳建设工程信息网招标显示待验证什么意思
  • 网站开发需要哪些能力网站建设的目的及功能
  • 专题网站模板360建筑网站
  • wordpress网站首页链接乱码化妆品网站模板下载
  • 织梦怎么做网站地图网站建设找d云世家
  • 阿里网站销量做不起来怎么办视觉传播设计与制作
  • 一个服务器可以建几个网站大型建站网站
  • 医院网站改版建设招标公告网站空间到期怎么办
  • 设计本官方网站 网络服务wordpress 熊掌号插件
  • 长沙响应式网站设计有哪些网站 实例
  • 西安市建设厅网站做网络销售如何找客户
  • 最权威的网站推广设计商务电子是学什么的
  • 网站发布的方法有几种网站建设与代运营产品介绍
  • 永康做网站公司宾馆网站建设方案
  • 西宁企业网站营销推广久久建筑网怎样
  • 做微信的网站有哪些功能吗果业局网站建设
  • 建立网站线上营销天天外链官网
  • 最新网站技术网站备案表格样本
  • 抢注域名网站什么网站专门做二手物品
  • 青海网站设计平面艺术设计
  • 富阳网站建设洛洛科技友情链接代码
  • 建设银行开户行查询网站湛江建站公司模板
  • 辽宁网站seo做电商网站的设计思路有什么意思
  • 网站建设中企动力最佳a4中天建设集团有限公司重庆分公司
  • 免费学平面设计的网站自己的网站怎么做的
  • 一个虚拟主机可以做两个网站吧怎么用自己电脑做服务器搭建网站
  • 网站rss生成网站精品案例