elasticsearch倒排索引
Elasticsearch使用一种称为倒排索引的结构,它适用于快速的全文搜索。一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,有一个包含它的文档列表。
当Elasticsearch储存如下的几条数据时,数据会被分词拆分。
- my name is tom.
- tom comes from English.
词 | id |
---|---|
my | 1 |
name | 1 |
is | 1 |
tom | 1,2 |
comes | 2 |
from | 2 |
English | 2 |
此时,当用户搜索tom English
时,搜索词被分词为tom
和English
,对比如上表格tom
将匹配到数据1和数据2,English
将匹配到数据2。两条数据都匹配,但是数据2的匹配度高于数据1,因此数据2的_score
将高于数据1。