一、倒排索引
1、什么是倒排索引
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g7SO2mhV-1596981293103)(http://note.youdao.com/yws/res/60510/2AE09DC7D9A24970A52A45FE10EB8BDF)]
主要包含两部分:
1、单词词典(Term Dictionary)
记录所有文档的单词,记录单词到倒排列表的关联关系。生产环境中单词数据量一般都比较大,可以通过B+树或者哈希拉链法实现,以满足高性能的插入或查询。
2、倒排列表(Posting List)
记录了单词对应的文档的一些倒排索引项信息。主要包括:
- 文档ID
- 词频(该单词在文档中出现的次数,用于相关性评分)
- 位置(Position,单词在文档分词中的位置,用于语句搜索)
- 偏移(Offset,记录单词开始结束的位置,实现高亮显示)
ES的json文档中的每个字段,默认都有自己的倒排索引。当然也可以指定对某些字段不做索引,这种做法的优点就是节省空间,缺点也显而易见,未被索引的字段是无法被搜索的。
二、分词器
1、analyzsis 与 analyzer
在ES中,是通过具体的分词器(analyzer)实现对全文本的转换,将器转换成一个个的单词,这整个过程就叫做分词(analyzsis)。
分词器是专门处理分词的一个组件,分词器主要由三部分组成:
- Character Filters,主要是对原始文本做处理,如去除html等
- Tokenizer,按照具体规则对文档进行切分
- Token Filter,对切分完的单词进行加工,如小写处理、删除stopword

最低0.47元/天 解锁文章
3916

被折叠的 条评论
为什么被折叠?



