暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Java面试题---第九弹 Elasticsearch

门头沟程序猿 2022-03-08
266


ElasticSearch全文检索原理是怎样的?

  • 我们生活中的数据总体分为两种:结构化数据和非结构化数据。

  • 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据:指不定长或无固定格式的数据,如 互联网数据、邮件,word文档等。

  • 对非结构化数据顺序扫描很慢,对结构化数据的搜索却相对较快,那么把我们的非结构化数据想办法弄得有一定结构不就行了吗?这就是全文检索的基本思路,也就是将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。这部分从非结构化数据中提取出的然后重新组织的信息,我们称之索引 。

  • 非结构化数据又一种叫法叫全文数据。

  • 按照数据的分类,搜索也分为两种:

  1. 对结构化数据的搜索:如对数据库的搜索,用SQL语句。再如对元数据的搜索,如利用windows搜索对文件名,类型,修改时间进行搜索等。

  2. 对非结构化数据的搜索:如用Google和百度可以搜索大量内容数据。对非结构化数据也即全文数据的搜索主要有两种方法:顺序扫描法和反向索引法。

  3. 顺序扫描法:所谓顺序扫描法,就是顺序扫描每个文档内容,看看是否有要搜索的关键字,实现查找文档的功能,也就是根据文档找词。

  4. 反向索引法:所谓反向索引,就是提前将搜索的关键字建成索引,然后再根据索引查找文档,也就是根据词找文档。

  • 这种先建立索引,再对索引进行搜索文档的过程就叫全文检索(Full-text Search) 。

  • 全文检索的流程分为两大流程:索引创建、搜索索引

  • 索引创建:将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程。搜索索引:就是得到用户的查询请求,搜索创建的索引,然后返回结果的过程。

  • elasticsearch 的倒排索引是什么?

  • elasticsearch 索引数据多了怎么办,如何调优,部署?

  • elasticsearch 是如何实现 master 选举的?

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

  • 详细描述一下 Elasticsearch 搜索的过程?

  • 客户端在和集群连接时,如何选择特定的节点执行请求的?

  • 对于 GC 方面,在使用 Elasticsearch 时要注意什么?

  • Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?

  • 在并发情况下,Elasticsearch 如果保证读写一致?

  • 拼写纠错是如何实现的?



文章转载自门头沟程序猿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论