目录
什么是Analysis?
文本分析,把全文转换成一系列单词(term/token)的过程,也叫分词。他是通过Analyzer实现的,可以使用es内置的分析器,或者按需定制化分析器,除了在数据写入时进行分词,匹配query语句时也需要用相同的分析器对查询语句进行分析
Analyzer的组成
分词器是专门处理分词的组件,Analyzer由三部分组成
- Character Filters 针对原始文本处理,例如去除html
- Tokenizer 按照规则切分单词
- Token filter 将切分的单词进行加工,小写,删除,增加同义词等
使用_analyzer API
直接指定Analyzer进行测试
指定索引的字段进行测试
自定义分词器进行测试
Es内置分词器
举例:
中文分词的难点:
中文句子:切分成一个一个词,而不是一个一个句子
英文中,单词有自然的空格作为分隔
一句中文,在不同的上下文中,有不同的理解
中文分词器:
IK
支持自定义词库,支持热更新分词字典
https://github.com/medcl/elasticsearch-analysis-ik