【Elasticsearch】Elasticsearch倒排索引详解
warning:
这篇文章距离上次修改已过192天,其中的内容可能已经有所变动。
倒排索引是Elasticsearch的核心。它允许在文档集合中快速检索包含特定项(例如单词)的文档。
倒排索引的构建过程如下:
- 文档分割:将文档内容分割成单独的词(或者称为Term)。
- 创建词典:对所有词进行排序并创建索引。
- 创建倒排列表:记录每个词出现的文档集合。
例如,对于以下两个文档:
文档1: "Elasticsearch is a distributed, RESTful search engine"
文档2: "Elasticsearch is fast, distributed, scalable"
创建倒排索引如下:
词典(terms):
- "a"
- "distributed"
- "elasticsearch"
- "fast"
- "is"
- "restful"
- "scalable"
- "search"
- "engine"
倒排列表(postings list):
- "Elasticsearch": [1, 2]
- "is": [1, 2]
- "a": [1]
- "distributed": [1, 2]
- "fast": [2]
- "restful": [1]
- "scalable": [2]
- "search": [1]
- "engine": [1]
在Elasticsearch中,倒排列表称为Inverted Index,它是一个数据结构,用于快速检索包含特定词条的文档。
以上就是Elasticsearch倒排索引的基本概念和构建过程。在实践中,Elasticsearch会进一步优化倒排列表,例如,通过区间查询优化大量重复值的存储,通过前缀编码等方式减少索引的大小等等。
评论已关闭