最常见的 ES 面试核心问答知识点
一、什么是倒排索引?有什么好处?
索引: 从 ID 到内容。
倒排索引: 从内容到 ID。好处: 比较适合做关键字检索。 可以控制数据的总量。提高查询效率。
搜索引擎为什么比 MySQL 查询快? lucence
文章 -》 term ->排序 term dictionary -> term index -》 Posting List -> [文章 ID ,[在文章中出现的偏移量],权重 ]TFIDF
二、ES 了解多少?说说你们公司的 ES 集群架构。
ES: 是一个基于 Lucene 框架的搜索引擎产品。you know for search。提供了 Restful 风格的操作接口。 ELK
Lucene:是一个非常高效的全文检索引擎框架。java jar
ES 的一些核心概念:
1、索引 index : 关系型数据库中的 table
2、文档 document : row
3、字段 field text\keyword\byte : 列
4、映射 Mapping : Schema。
5、查询方式 DSL : SQL ES 的新版本也支持 SQL
6、分片 sharding 和 副本 replicas: index 都是由 sharding 组成的。每个 sharding 都有一个或多个备份。 ES 集群健康状态:
ES 的使用场景。ES 可以用在大数据量的搜索场景下,另外 ES 也有很强大的计算能力。用户画像
三、如何进行中文分词?用过哪些分词器?
IK 分词器。
四、ES 写入数据的工作原理是什么?
1、客户端发写数据的请求时,可以发往任意节点。这个节点就会成为 coordinating node 协调节点。
2、计算的点文档要写入的分片:计算时就采用 hash 取模的方式来计算。
3、协调节点就会进行路由,将请求转发给对应的 primary sharding 所在的 datanode。
4、datanode 节点上的 primary sharding 处理请求,写入数据到索引库,并且将数据同步到对应的 replica sharding
5、等 primary sharding 和 replica sharding 都保存好文档了之后,返回客户端响应。
五、ES 查询数据的工作原理是什么?
1、客户端发请求可发给任意节点,这个节点就成为协调节点
2、协调节点将查询请求广播到每一个数据节点,这些数据节点的分片就会处理改查询请求。
3、每个分片进行数据查询,将符合条件的数据放在一个队列当中,并将这些数据的文档 ID、节点信息、分片信息都返回给协调节点。
4、由协调节点将所有的结果进行汇总,并排序。
5、协调节点向包含这些文档 ID 的分片发送 get 请求,对应的分片将文档数据返回给协调节点,最后协调节点将数据整合返回给客户端。
版权声明: 本文为 InfoQ 作者【浅羽技术】的原创文章。
原文链接:【http://xie.infoq.cn/article/bb8cf60e6bbf30e4280a46122】。文章转载请联系作者。
评论