elasticsearch倒排索引

Elasticsearch使用一种称为倒排索引的结构,它适用于快速的全文搜索。一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,有一个包含它的文档列表。

当Elasticsearch储存如下的几条数据时,数据会被分词拆分。

  1. my name is tom.
  2. tom comes from English.
id
my 1
name 1
is 1
tom 1,2
comes 2
from 2
English 2

此时,当用户搜索tom English时,搜索词被分词为tomEnglish,对比如上表格tom将匹配到数据1和数据2,English将匹配到数据2。两条数据都匹配,但是数据2的匹配度高于数据1,因此数据2的_score将高于数据1。