1.核心组成
- 单词词典(Term Dictionry)
记录所有的文档单词,记录单词到倒排列表的关联关系。一般比较大,可以通过B+树或者哈希拉链法实现,满足高性能的查询和插入。 - 倒排列表(Posting List)
记录了单词对应的文档的集合,由倒排索引项构成 。- 倒排索引项
- 文档id
- 词频TF:该单词在文档中出现的次数,用于关联性打分。
- 位置:单词在文档中分词的位置,用于语句搜索。
- 偏移:记录单词的开始结束位,实现高亮显示。
- 倒排索引项
案例
原内容:
文档ID | 文档内容 |
---|---|
1 | Mastering Elasticsearch |
2 | Elasticsearch Server |
3 | Elasticsearch Example |
假设单词字典只有一个单词Elasticsearch
,对应的倒排列表如下:
docId(文档id) | TF(词频) | Position(位置) | Offset(偏移量) |
---|---|---|---|
1 | 1 | 1 | (10,23) |
2 | 1 | 0 | (0,13) |
3 | 1 | 0 | (0,13) |
2.ES里面的倒排索引
- ES里面的JSON文档的每个字段,都有自己的倒排索引。
- 可以指定某些字段不做索引。
- 优点:节省空间
- 缺点:字段无法被搜索
网友评论