深入理解Elasticsearch写入过程 使用routing会导致docid不再全局唯一 Allocate策略 + routing参数
1.默认查询接口会搜索所有的shard,但也可以指定routing字段,这样就只会查询routing计算出来的shard,提高查询速度。 --使用routing会导致docid不再全局唯一
使用方式也非常简单,只需在查询语句上面指定routing即可,允许指定多个:
-- 查询所有分区 GET route_test/_search { "query": { "match": { "data": "b" } } } -- 查询指定分区 GET route_test/_search?routing=key1,key2 { "query": { "match": { "data": "b" } } }
2.指定routing还有个弊端就是容易造成负载不均衡。所以ES提供了一种机制可以将数据路由到一组shard上面,而不是某一个。只需在创建索引时(也只能在创建时)设置index.routing_partition_size
,默认值是1,即只路由到1个shard,可以将其设置为大于1且小于索引shard总数的某个值,就可以路由到一组shard了。值越大,数据越均匀。
https://www.cnblogs.com/caoweixiong/p/12029789.html 参考
3.ES shard的实质是Lucene的索引,所以其实每个shard都是一个功能完善的倒排索引。
用一个例子来演示会更加清晰
分类:
elk
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
2019-03-29 kubernete 数据库 etcd
2018-03-29 公司架构理解 - 千万 pv 网站 -- 排错思路 -- 架构化分解排错
2018-03-29 公钥与私钥,数字签名 - RSA非对称加密
2018-03-29 记录Windows远程登录日志(转)