Elasticsearch(ES)核心知识点
ElasticsearchES核心知识点1. 核心概念Document文档一条数据JSONField字段文档里的属性Index索引相当于数据库的“库/表”Type类型7.x 已废弃一个索引只对应一类数据Shard分片索引切分成多个分片实现分布式存储与并发Replica副本分片的备份保证高可用、提高查询吞吐量Node节点一个 ES 实例Cluster集群多个节点组成Master Node主节点管理集群元数据、分片分配Data Node数据节点存储数据、执行查询Coordinating Node协调节点接收请求、分发、聚合结果Segment段文件底层最小存储单位不可变Translog预写日志防止宕机丢数据2. 核心架构原理索引被分为多个主分片Primary Shard每个主分片有多个副本分片Replica读写都走主分片副本可分担查询分片均匀分布在不同节点实现水平扩展3. 写入流程极简数据先写内存缓冲区同时写Translog防止宕机丢失定时 refresh → 生成 segment可被搜索多次 segment 后台merge合并定时 flush → 数据落盘清空 Translog4. 查询流程极简请求发给协调节点分发到对应分片各分片返回匹配结果协调节点聚合、排序、分页返回最终结果5. 分词ES 核心能力对文本进行切词用于全文检索中文必须用IK 分词器ik_max_word最细粒度拆分ik_smart粗粒度拆分6. 高可用机制多节点 分片副本某个节点挂掉对应分片的副本自动提升为主分片集群自动 rebalance无单点故障7. 数据可靠性防丢Translog 保证写入不丢失副本机制保证硬件故障不丢底层基于 Lucene持久化安全8. 常见查询类型match全文检索分词后匹配term精确匹配不分词match_phrase短语匹配range范围查询bool组合查询must / should / must_not / filteraggregation聚合分析分组、统计、去重9. 深度分页问题from size过大会深度翻页性能极差解决方案search_after推荐生产用scroll适合大量导出10. 写入优化批量写入bulk关闭刷新加大 refresh_interval副本数调为 0 后再恢复合理设置分片数11. 查询优化避免*前缀模糊查询使用 filter 代替 query不算分缓存友好字段设置合理类型keyword 不分词避免大结果集返回利用路由routing定位分片12. 脑裂问题老生常谈原因网络问题导致多个节点选主解决discovery.zen.minimum_master_nodes: (master节点数/2)1新版已内置更好的选举机制基本不会出现。13. 典型应用场景搜索引擎商城、APP 搜索日志分析ELK用户行为分析地理信息检索附近的店报表聚合统计14. 一句话背诵版分片实现分布式副本实现高可用写入靠translog防丢查询靠分词提速全文检索用match精确匹配用term深度分页用search_after大查询用filter小结果用must
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2480708.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!