Elasticsearch 搜索的流程

Elasticsearch 的搜索流程是一个分布式协作过程,主要包含 ‌查询阶段(Query Phase)‌ 和 ‌取回阶段(Fetch Phase)‌,默认采用 QUERY_THEN_FETCH 模式。以下是详细流程:

一、请求分发与路由

‌1.1 客户端请求发送‌

客户端向集群中任意节点(成为‌协调节点‌)发送搜索请求,请求包含查询条件、目标索引等参数。

‌1.2 目标分片定位‌

协调节点解析请求,根据索引路由策略(如哈希文档ID)确定所有需要查询的‌主分片或副本分片‌位置。请求被并行转发至目标分片所在的数据节点。

二、查询阶段(Query Phase)

‌2.1 分片本地搜索‌

每个目标分片独立执行查询:

使用 倒排索引‌ 匹配符合条件的文档 ID。

计算文档相关性得分(如 BM25 算法)。

根据排序规则(如得分、时间)生成‌优先级队列‌(Top-N 结果),仅存储文档 ID 和排序信息(非完整文档)。

2‌.2 返回中间结果‌

各分片将优先级队列结果(文档 ID + 排序信息)返回给协调节点。

三、结果聚合与排序

‌3.1 全局结果合并‌

协调节点聚合所有分片的中间结果:

按全局排序规则(如相关性得分)对所有文档进行‌重新排序‌。

根据分页参数(from/size)筛选最终的候选文档 ID。

四、取回阶段(Fetch Phase)

4.1 ‌获取完整文档数据‌

协调节点向候选文档 ID 所在的分片发送‌多文档获取请求‌(Multi-Get)。

各分片返回完整文档内容(包括 _source 字段)。

4.2 组装最终响应‌

协调节点整合文档数据,补充高亮、聚合结果等附加信息,返回给客户端。

五、高级搜索模式

‌ DFS_QUERY_THEN_FETCH‌:

在查询前增加‌全局词频统计‌步骤,解决分片间评分不一致问题,但性能较低。

关键流程总结

注‌:若查询包含聚合(Aggregation),各分片会先计算‌局部聚合结果‌,协调节点再汇总生成全局聚合数据。

相关推荐
科技发布10 小时前
可出具正规收录回执广告平台推荐,朝闻通合规投放满足企业审计需求
大数据·人工智能·科技·媒体
智慧景区与市集主理人10 小时前
巨有科技:市集笔记内容分发,低成本打造本地流量曝光矩阵
大数据·笔记·科技
Promise微笑10 小时前
激光清障仪市场与技术深度分析:基于原理、应用及厂家格局的综述
大数据·人工智能·物联网
财迅通Ai11 小时前
南华期货半年净利预期高增,稀缺自主清算壁垒驱动跨境业务规模放量
大数据·人工智能·区块链·南华期货
Devin~Y11 小时前
电商场景下的Java面试实战:从Spring Boot微服务到Kafka、Redis与AI RAG
java·spring boot·redis·elasticsearch·spring cloud·微服务·kafka
风途科技~11 小时前
手持式雷达测速仪:不限道路厂区,可设置限速阈值实时监测车辆速度
大数据·人工智能
GEO_ai_zhijian11 小时前
饮料生产线质量检测系统哪家好
大数据·人工智能·python
wuhanzhanhui12 小时前
从光影切割到金属艺术:2026武汉激光焊接切割及钣金加工展会,重塑制造精度
大数据·人工智能
杨逢昌工厂6S管理12 小时前
28- 杨逢昌:制造企业仓储6S反复混乱解决方案——四维定置标准化管控体系,让物料混放、通道堵塞等重复性乱象减少90%
大数据·经验分享·笔记·职场和发展·制造·学习方法
SelectDB技术团队12 小时前
Agent 场景动态 JSON 性能拆解:Apache Doris 比 ClickHouse 快 7 倍、比 Elasticsearch 快 2 倍
数据库·clickhouse·elasticsearch·json·apache·日志分析·apache doris