倒排索引的核心组成
- 单词词典:记录所有文档的单词,记录单词到倒排列表的关联关系
- 倒排列表记录了单词对应的文档组合,由倒排索引项组成
倒排索引项:
- 文档ID
- 词频TF :该单词在文档中出现的次数,用于相关性评分
- 位置:单词在文档中分词的位置,用于语句搜索
- 偏移:记录单词的开始结束位置,实现高亮显示
elasticsearch的json文档中的每个字段,都有自己的倒排索引;可以指定对某些字段不做索引,可节省存储空间,但字段无法被搜索。
Analysis
- Analysis :文本分析是把全文本转换成一系列单词(term/token)的过程,也叫分词
- Analysis是通过Analyzer(分词器)来实现的。es有内置的分析器,也可以自定制分析器
- 除了在数据写入时转换词条,匹配Query语句时也需要用相同的分析器对查询语句进行分析。
Analyzer的组成
- character filters: 针对原始文本处理
- tokenizer:按照规则将文本切分为单词
- token filter:将切分的单词进行加工、转为小写、删除stopwords、增加同义词