止步阿里一面。。。-ES

2. 倒排索引了解吗?

倒排索引是Elasticsearch中非常核心的概念,它使得全文搜索变得高效。

  • 定义:倒排索引是一种数据结构,用于存储文档集合中的单词到文档映射关系。简单来说,就是将每个词和包含这个词的所有文档关联起来。
  • 工作原理
    • 在正向索引中,系统会记录每篇文档的内容及其位置信息。
    • 而在倒排索引中,系统则会创建一个词汇表,并为每个词建立一个列表,列出所有包含该词的文档ID以及词在文档中的位置信息。
3. ES的分页功能有什么特性?

在Elasticsearch中,处理大量搜索结果时有几种常见的分页方法,每种方法都有其特点和适用场景:

  1. fromsize 分页

这是最基本的分页方式,类似于传统的SQL分页。你通过设置from参数来指定从哪条记录开始,用size参数来指定返回多少条记录。这种方式简单直观,但不适合大数据集的深分页。随着from值的增大,性能会显著下降,而且默认情况下最多只能返回10000条记录(可以通过配置调整这个限制)。

  1. scroll API

当你需要处理非常大的数据集时,可以使用scroll API。它创建一个快照,并允许你逐步滚动浏览所有数据。这种方式非常适合批量导出或数据分析,因为它不受10000条记录的限制。不过,scroll的数据不是实时更新的,且长时间保持打开的scroll可能会占用较多资源。

  1. search_after

search_after是一种高效的分页方式,特别适合需要高性能和实时数据更新的应用。它利用前一页的结果中的排序值作为下一次查询的起点,从而实现连续翻页。这种方式避免了from + size带来的性能问题,但不能直接跳到任意页,必须按顺序逐页翻阅。

4. ES的分词检索?

简单来说分词检索就是将文本拆分成一个个词汇(或称为“词项”),然后基于这些词汇进行搜索的过程:

  1. 文本输入:用户输入一段文本进行搜索。
  2. 分词:Elasticsearch使用分析器将这段文本分解成单独的词汇。例如,句子 “The quick brown fox” 会被分解成 [“The”, “quick”, “brown”, “fox”]。
  3. 匹配:Elasticsearch在索引中查找包含这些词汇的文档。如果某个文档中的内容包含了这些词汇,那么这个文档就会被作为搜索结果返回。

通过这种方式,Elasticsearch能够快速找到与查询相关的文档,实现高效的全文搜索。

上一篇:【微服务】微服务API网关详解:提升系统效率与安全性的关键策略


下一篇:项目随记--二维码、条形码工具类