elasticsearch - 如何根据分片数计算 Elasticsearch 的分片数?
问题描述
我正在使用 Elasticsearch 版本 elasticsearch-7.13.4。我在互联网上找不到任何确切的答案。有什么公式吗?
解决方案
底层概念称为“切片滚动”,与分片数量无关。从链接的文档中:
默认情况下,首先在分片上进行拆分,然后使用 _id 字段在每个分片上进行本地拆分,公式如下: slice(doc) = floorMod(hashCode(doc._id), max) 例如,如果分片数量相等到 2 并且用户请求了 4 个切片,然后切片 0 和 2 分配给第一个分片,切片 1 和 3 分配给第二个分片。
但是,当使用自动分片(即slices=auto
)时,Elasticsearch 会选择分片数作为分片数
将切片设置为自动将使 Elasticsearch 选择要使用的切片数量。此设置将每个分片使用一个切片,直至达到一定限制。如果有多个源,它将根据分片数最少的索引或后备索引选择分片数。
当切片数等于索引中的分片数时,查询性能最有效。[...] 将切片设置为高于分片数量通常不会提高效率并增加开销。
推荐阅读
- redis - 是否可以将哈希存储到redis中的排序集中?
- python - Cumsum 仅在 pandas python 中切换
- html - 顶部的粘性导航栏
- java - 休息控制器的弹簧日志
- php - 注销后没有重定向到主页
- python - Python将列表作为元素附加到数据框
- php - 当我有一个包罗万象的 mod_rewrite 规则时,为什么 Apache 会尝试从子目录中提供内容?
- python - python pandas:用字典中的值替换单元格
- redis - 为什么我不能在 redis 中的这个排序集上使用 ZRANGEBYLEX?
- web-scraping - 为了让 BeautifulSoup 正确抓取,是否有任何具体声明?