
/br>
img src="https://www.west.cn/info/upload/20200424/eocd1xvvsha.jpg" alt="">
strong>1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索
/strong>
strong>引数据大小,分片有多少,以及一些调优手段 。
/strong>
strong>面试官:
/strong>想了解应聘者之前公司接触的 ES 使用场景、规模,有没有做过比较大
strong>解答:
/strong>(文末可领取更多面试资料)
strong>比如:
/strong>ES 集群架构 13 个节点,索引根据通道不同共 20+索引,根据日期,每日
strong>仅索引层面调优手段:
/strong>
strong>1.1、设计阶段调优
/strong>
strong>1.2、写入调优
/strong>
strong>1.3、查询调优
/strong>
strong>1.4、其他调优
/strong>
strong>2、elasticsearch 的倒排索引是什么
/strong>
strong>面试官:
/strong>想了解你对基础概念的认知。
strong>解答
/strong>:通俗解释一下就可以。
img src="https://www.west.cn/info/upload/20200424/xmmywl3hyjd.jpg" alt="">
strong>学术的解答方式:
/strong>
strong>加分项:倒排索引的底层实现是基于:
/strong>
strong>lucene 从 4+版本后开始大量使用的数据结构是 FST。FST 有两个优点:
/strong>
strong>3、elasticsearch 索引数据多了怎么办,如何调优,部署
/strong>
strong>面试官:
/strong>想了解大数据量的运维能力。
strong>解答
/strong>:索引数据的规划,应在前期做好规划,正所谓“设计先行,编码在后”,
strong>如何调优,正如问题 1 所说,这里细化一下:
/strong>
strong>3.1 动态索引层面
/strong>
strong>3.2 存储层面
/strong>
strong>3.3 部署层面
/strong>
strong>4、elasticsearch 是如何实现 master 选举的
/strong>
strong>解答:
/strong>
strong>前置前提:
/strong>
strong>选举流程大致描述如下:
/strong>
strong>第一步:
/strong>确认候选主节点数达标,elasticsearch.yml 设置的值
strong>第二步:
/strong>比较:先判定是否具备 master 资格,具备候选主节点资格的优先返回;
strong>5、详细描述一下 Elasticsearch 索引文档的过程
/strong>
strong>面试官:
/strong>想了解 ES 的底层原理,不再只关注业务层面了。
strong>解答:
/strong>
img src="https://www.west.cn/info/upload/20200424/lhm4immq101.jpg" alt="">
strong>第一步:
/strong>客户写集群某节点写入数据,发送请求。(如果没有指定路由/协调节点,
strong>第二步:
/strong>节点 1 接受到请求后,使用文档_id 来确定文档属于分片 0。请求会被转
strong>第三步:
/strong>节点 3 在主分片上执行写操作,如果成功,则将请求并行转发到节点 1
strong>如果面试官再问:第二步中的文档获取分片的过程?
/strong>
strong>6、详细描述一下 Elasticsearch 搜索的过程?
/strong>
strong>面试官:
/strong>想了解 ES 搜索的底层原理,不再只关注业务层面了。
strong>解答:
/strong>
strong>query 阶段的目的
/strong>:定位到位置,但不取。
strong>步骤拆解如下:
/strong>
strong>fetch 阶段的目的
/strong>:取数据。
strong>7、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
/strong>
strong>面试官:
/strong>想了解对 ES 集群的运维能力。
strong>解答:
/strong>
strong>8、lucence 内部结构是什么?
/strong>
strong>解答:
/strong>
img src="https://www.west.cn/info/upload/20200424/q3f3nycgmcz.jpg" alt="">
strong>9、Elasticsearch 是如何实现 Master 选举的?
/strong>
strong>node.master: true
/strong>)根据 nodeId 字典排
strong>10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个
/strong>
strong>选了一个 master,另外 10 个选了另一个 master,怎么办?
/strong>
strong>discovery.zen.minimum_master_nodes
/strong>)超过所有候选节点一半以上来解
strong>11、客户端在和集群连接时,如何选择特定的节点执行请求的?
/strong>
strong>轮
/strong>
strong>询
/strong>的方式与这些地址进行通信。
strong>12、详细描述一下 Elasticsearch 索引文档的过程。
/strong>
img src="https://www.west.cn/info/upload/20200424/movkqf2zsjp.jpg" alt="">
strong>补充:关于 Lucene 的 Segement:
/strong>
strong>13、详细描述一下 Elasticsearch 更新和删除文档的过程。
/strong>
strong>14、详细描述一下 Elasticsearch 搜索的过程。
/strong>
strong>查询阶段
/strong>时,查询会广播到索引中每一个分片拷贝(主分片或者副本分
strong>所有文档的 ID 和排序值
/strong>给协调节点,它合并
strong>取回阶段
/strong>,协调节点辨别出哪些文档需要被取回并向相关的分片
em>丰富
/em>文档,如果有需要的话,接着返回
img src="https://www.west.cn/info/upload/20200424/fzqnqtiqwds.jpg" alt="">
strong>15、在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索
/strong>
strong>引的?
/strong>
li>Lucene 的索引文件格式(1)
/li>
li>Lucene 的索引文件格式(2)
/li>
strong>16、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方
/strong>
strong>法?
/strong>
em>大量 的
/em>文件。同时,Elasticsearch 在节点和 HTTP 客户端
strong>补充:索引阶段性能提升方法
/strong>
strong>17、对于 GC 方面,在使用 Elasticsearch 时要注意什么?
/strong>
strong>18、Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
/strong>
em>distinct
/em>或者
em>unique
/em>值的数目。它是基于 HLL 算法的。HLL 会先对
strong>19、在并发情况下,Elasticsearch 如果保证读写一致?
/strong>
strong>20、如何监控 Elasticsearch 集群状态?
/strong>
strong>21、介绍下你们电商搜索的整体技术架构
/strong>
img src="https://www.west.cn/info/upload/20200424/iv5q1vkszhz.jpg" alt="">
strong>22、介绍一下你们的个性化搜索方案?
/strong>
strong>23、是否了解字典树?
/strong>
img src="https://www.west.cn/info/upload/20200424/nolr0tsqaal.jpg" alt="">
strong>达到提高效率的目的。它有 3 个基本性质:
/strong>
img src="https://www.west.cn/info/upload/20200424/acogw0yryab.jpg" alt="">
strong>24、拼写纠错是如何实现的?
/strong>
img src="https://www.west.cn/info/upload/20200424/wnihihxffsf.jpg" alt="">
strong>系满足以下三条基本条件:
/strong>
p>
d(x,y) = 0 -- 假如 x 与 y 的距离为 0,则 x=yd(x,y) = d(y,x) -- x 到 y 的距离等同于 y 到 x 的距离
d(x,y) + d(y,z) >= d(x,z) -- 三角不等式
/p>
strong>3、查询相似词如下:
/strong>计算单词与根节点的编辑距离 d,然后递归查找每个子节点
strong>cake
/strong>,然后再找和 cake 节点编辑距离是 0 到 2 的,分别找到 cape 和
strong>cape
/strong>这个满足条件的结果。
img src="https://www.west.cn/info/upload/20200424/i4uxypuepxi.jpg" alt="">
img src="https://www.west.cn/info/upload/20200424/1p1ixacvlhs.png" alt="">
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/4882.html