想了解 ES 搜索的底层原理,不再只关注业务层面了。

解答:

搜索拆解为“query then fetch” 两个阶段。

query 阶段的目的:定位到位置,但不取。

步骤拆解如下:

1、假设一个索引数据有 5 主+1 副本 共 10 分片,一次请求会命中(主或者副本

分片中)的一个。

2、每个分片在本地进行查询,结果返回到本地有序的优先队列中。

3、第 2)步骤的结果发送到协调节点,协调节点产生一个全局的排序列表。

fetch 阶段的目的:取数据。

路由节点获取所有文档,返回给客户端。

详细描述一下 Elasticsearch 搜索的过程?的更多相关文章

  1. 详细描述一下 Elasticsearch 索引文档的过程?

    协调节点默认使用文档 ID 参与计算(也支持通过 routing),以便为路由提供合适的分片. shard = hash(document_id) % (num_of_primary_shards) ...

  2. 详细描述一下 Elasticsearch 索引文档的过程 ?

    面试官:想了解 ES 的底层原理,不再只关注业务层面了. 解答: 这里的索引文档应该理解为文档写入 ES,创建索引的过程. 文档写入包含:单文档写入和批量 bulk 写入,这里只解释一下:单文档写入流 ...

  3. 详细描述一下 Elasticsearch 索引文档的过程 ?

    这里的索引文档应该理解为文档写入 ES,创建索引的过程. 文档写入包含:单文档写入和批量 bulk 写入,这里只解释一下:单文档写入流程. 记住官方文档中的这个图. 第一步:客户写集群某节点写入数据, ...

  4. 详细描述一下 Elasticsearch 更新和删除文档的过程?

    1.删除和更新也都是写操作,但是 Elasticsearch 中的文档是不可变的,因此不 能被删除或者改动以展示其变更: 2.磁盘上的每个段都有一个相应的.del 文件.当删除请求发送后,文档并没有真 ...

  5. 在Activity之间如何传递数据,请尽可能说出你所知道的传递数据的方法,并详细描述其实现过程。

    在Activity之间如何传递数据,请尽可能说出你所知道的传递数据的方法,并详细描述其实现过程. 答案:可以通过Intent对象.静态变量.剪切板和全局对象进行数据传递,具体的数据传递方法如下. 1. ...

  6. Elasticsearch搜索调优权威指南 (2/3)

    本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/AAkVdzmkgdBisuQZldsnvg 英文原文:https://qbox.io/blog/el ...

  7. 一次 ElasticSearch 搜索优化

    一次 ElasticSearch 搜索优化 1. 环境 ES6.3.2,索引名称 user_v1,5个主分片,每个分片一个副本.分片基本都在11GB左右,GET _cat/shards/user 一共 ...

  8. 渗透测试的理论部分2——OSSTMM的详细描述

    昨天休息了一天,今天我要连更两篇博客,作为补充,以下为正文 本章详细描述了OSSTMM内的RAV得分这一理论概念,对日后从事正规安全工作至关重要 OSSTMM为开源安全测试方法论,对OSSTMM不了解 ...

  9. ElasticSearch搜索介绍四

    ElasticSearch搜索 最基础的搜索: curl -XGET http://localhost:9200/_search 返回的结果为: { "took": 2, &quo ...

随机推荐

  1. 商业智能bi行业现状,BI应用的3个层次

    ​商业智能bi行业现状.传统的报表系统技术上已经相当成熟,大家熟悉的Excel等都已经被广泛使用.但是,随着数据的增多,需求的提高,传统报表系统面临的挑战也越来越多. 1. 数据太多,信息太少 密密麻 ...

  2. Smartbi集成性怎么样,是否方便与已有的Web应用集成?

    Smartbi产品具有强大的集成能力,它采用纯JAVA开发,支持J2EE系统的嵌入式部署,它对外提  供所有功能的API访问接口,可以实现灵活的控制,能够方便无缝与已有的Web应用进行集成. 支持丰富 ...

  3. Vue框架简介和环境搭建

    前言: 此篇随笔为个人学习前端框架Vue,js的技术笔记,主要记录一些自己在学习Vue框架的心得体会和技术总结,作为回顾和笔记使用. 这种写博客的方式,对刚开始学习Vue框架的我,也是一种激励,我相信 ...

  4. 【windows 访问控制】开篇、访问控制模型模型

    访问控制模型的各个部分 访问控制模型有两个基本部分: 访问令牌,其中包含有关已登录用户的信息 安全描述符,其中包含用于保护安全对象 的安全信息 用户登录时 ,系统会对用户 的帐户名和密码进行身份验证. ...

  5. IEnumerable< T >和IEnumerable区别 |枚举接口

    为什么我们在继承IEnumerable< T >接口的时候也要实现IEnumerable接口. 新的代码里面都用IEnumerable< T >,因为泛型的类型是安全的.我们可 ...

  6. 【C#基础概念】程序集与托管模块的概念

    本文是为了学习程序集而整理的网上资料,主要包括两个部分,概念和使用,前部分讲怎样理解程序集,后部分讲述怎样使用的细节. 程序集与托管模块的概念 "程序集与托管代码块"(摘自Hima ...

  7. 常用邮箱POP3和SMTP服务器 设置

    转至:https://blog.csdn.net/zjfei/article/details/4757424?spm=1001.2101.3001.6661.1&utm_medium=dist ...

  8. Linux主机内存评估手册-从零到无

    --时间:2020年10月22日 --作者:飞翔的小胖猪 文档基于Centos Linux操作系统作为生产服务器运行环境.实时的查看分析当前系统内存的使用情况是否存在内存瓶颈,结合应用及现行业务需求分 ...

  9. linux centos7下 c++编程

    在Linux下与在windos下编程没啥区别,可以在windos上实现后,然后更改一些,移植到linux中 yum install gcc yum install gcc-c++ vi main.cp ...

  10. AndroidMainifest.xml文件属性

    1 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 package=" ...