一.书与搜索引擎
1.正排索引的概念
用户可以通过文档Id到文档内容、单词的关联关系。
单词的意思就是,将文档内容做了分词之后,每一个单词的结果
2.倒排索引的概念
单词到文档Id之间的关系进行索引
3.索引的查询流程
例如:查询包含"搜索引擎"的文档
步骤:①通过倒排索引获得"搜索引擎"对应的文档ID
②通过正排索引查询对应的文档Id,获得完整内容
③返回给用户最终结果
二.倒排索引的构成
倒排索引是搜索引擎的核心,主要包含两个部分:
①单词词典(Term Dictionary)
②倒排列表(Posting List)
1.单词词典
单词词典是倒排索引的重要组成部分,有如下特点:
①记录所有文档的单词,因为分词的结果比较多,所以一般都比较大。
②记录单词到倒排列表的关联信息。
一般的单词字典的实现使用的是B+树
2.倒排列表
概念:倒排列表是记录单词对应的文档集合,由倒排索引项组成
倒排索引项主要包含以下信息:
①文档id:用于获取原始信息
②单词频率,记录单词在该文档中出现的次数,用于后续相关性算分
③位置,记录单词在文档中的分词位置,用于做词语搜索
④偏移,记录单词在文档的开始和结束位置,用于做高亮显示
三.分词
1.基本概念
分词是指将文本转换成一系列单词的过程,也叫做文本分析,在es里称为Analysis。
2.分词器
分词器是es中专门处理分词的组件,成为Analyzer,它的组成如下:
①Character Filters:针对原始文本进行处理,比如说去除html标记符
②Tokenizer:将原始文