为了完成文本的快速搜索,ES 使用了一种称为 “倒排索引” 的数据结构。倒排索引中的所有词语存储在词典中,每个词语又指向包含它的文档信息列表。 假设需要对下面两个酒店的信息进行倒排索引的创建。 文档 ID 为 001,酒店名称为 “金都嘉怡假日酒店”。 文档 ID 为002,酒店名称为“金都欣欣酒店” 首先,ES 将文档交给分析器进行处理,处理的过程中包括字符过滤、分词和分词过滤,最终的处理结果是文档内容被表示为一系列关键词信息的集合。关键词信息指关键词本身以及它在文档中的位置信息和词性信息,如下图所示: 其次,ES 根据分析结果建立文档-词语矩阵,用以表示词语和文档的包含关系。 ES 会遍历文档-词语矩阵中的每一个词语,然后将包含该词语的文档信息与该词语建立一种映射关系。映射关系中的词语集合叫作 Term Dictionary,即“词典”。映射中的文档集合信息不仅包含文档ID,还包含词语在文档中的位置和词频信息,包含这些文档信息的结构叫作 Postion List。需要一种高效的数据结构堆映射关系中的词语集合进行索引,这种结构叫作 Term...