概要
本篇主要讲解倒排索引的基本原理以及ES常用的几种分词器介绍。
倒排索引的建立过程
倒排索引是搜索引擎中常见的索引方法,用来存储在全文搜索下某个单词在一个文档中存储位置的映射。通过倒排索引,我们输入一个关键词,可以非常快地获取包含这个关键词的文档列表。
我们先看英文的,假设我们有两个文档:
- I have a friend who loves smile
- love me, I love you
为了建立倒排索引,我们先按最简单的用空格把每个单词分开,可以得到如下结果:*表示该列文档中有这个词条,为空表示没有该词条
Term |
doc1 | doc2 |
---|---|---|
I | * |
* |
have | * |
|
a | * |
|
friend | * |
|
who | * |
|
loves | * |
|
smile | * |
|
love | * | |
me | * | |
you | * |
如果我们要搜索 I love you,我们只需要查找包含每个词条的文档:
Term |
doc1 | doc2 |
---|---|---|
I | * |
* |
love | * | |
you | * |
两个文档都能匹配上,如果按命中词条数量来算,doc2比doc1更匹配。
这个是倒排索引最简化的表达方式