Teng's blog Teng's blog
首页
Java
H5前端
GitHub (opens new window)
首页
Java
H5前端
GitHub (opens new window)
  • 认知

  • 入门

  • 环境

  • 进阶

  • 框架集成

  • 优化

    • 硬件选择
    • 分片策略
    • 路由选择
      • 不带routing查询
      • 带routing查询
    • 写入速度优化
    • 内存设置
    • 重要配置
  • 面试题

  • Database-Elasticsearch
  • 优化
Shetengteng
2022-02-05

路由选择

当我们查询文档的时候, Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?它其实是通过下面这个公式来计算出

shard = hash(routing) % number_of_primary_shards
1

routing 默认值是文档的 id,也可以采用自定义值,比如用户 id

# 不带routing查询

在查询的时候因为不知道要查询的数据具体在哪个分片上,所以整个过程分为2个步骤

  • 分发:请求到达协调节点后,协调节点将查询请求分发到每个分片上。
  • 聚合:协调节点搜集到每个分片上查询结果,在将查询的结果进行排序,之后给用户返回结果

# 带routing查询

查询的时候,可直接根据routing 信息定位到某个分配查询,不需要查询所有的分配,经过协调节点排序;上面自定义的用户查询,如果routing 设置为userid 的话,就可以直接查询出数据来,效率提升很多

Last Updated: 2022/02/05, 15:58:51
分片策略
写入速度优化

← 分片策略 写入速度优化→

Theme by Vdoing | Copyright © 2021-2022 Shetengteng | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式