前言:
es中的分词器由三部分组成
1、character filter:作用:先对要进行分析的文本进行一下过滤,比如html文档,去除其中的标签,比如<p>、<html>等等;
2、tokenizer:作用:对文本进行分词,把要进行分析的文本根据所指定的规则,按照其规则把文本拆分为单词,,只可以指定一个;
3、tokenizer filter:作用:把分好的词条(也即将tokenizer分好的词)进一步进行过滤,根据指定的filter把其识别的没用的词条给删除,或者增加(比如增加某些词的同义词)、修改(比如将testing、tested这种词同意为test)词条,可以指定多个。
[分词使用场景]:
- 创建或者更新文档时候,会对相应的文档进行分词处理
- 查询时,会对查询语句进行分词
- 注意,index时所用的分词器和查询时所用的分词器可不一样,可通过"analyzer"指定index时分词器,通过"search_analyzer"指定查询时分词器,但建议是设置成一样的,不然不利于查询(”put test_index{"mappings":{"