理论篇:ES(介绍)
定义
分布式全文检索中间件
应用
- 数据检索
- 数据分析
数据结构
倒排索引
正排索引:路径->数据
倒排索引:数据->路径
现在三个文档A B C,检索数据a:
-
正排:A->a, B->a, C->a。需查询三次
-
倒排:a->A,B,C。需检索一次
分词
- 英文分词:空格
- 中文分词:IK分词器
IK提供词典:ain2012.dic(主词典)、quantifier.dic(量词)、stopword.dic(停用词)、ext.dic(扩展词,可选)
IK提供分词器:LetterSegmenter(字符分词器),CN_QuantifierSegmenter(中文数量词分词器),CJKSegmenter(中日韩文分词器)
分词器分词模式:smart模式、max_word模式
分词算法:正向迭代最细粒度切分算法
例如:中华人民。
- 识别“中”,并作为前缀,加入词元“中”
- 识别“华”,识别出“中华”,加入词元”中华“
- …
IK分词步骤:
- 构建词典树(前缀树)
- 分词并查找匹配:正向迭代最细粒度切分算法
- 歧义判断:贪心算法
- 善后处理
基础概念
- index
- type
- mapping
- document
- field
架构设计理念
- 分片 + 副本 + 同步
- 选举