ES之分析器(Analyzer)及拼音分词器
把输入的文本块按照一定的策略进行分解,并建立倒排索引。在Lucene的架构中,这个过程由分析器(analyzer)完成。
主要组成
-
character filter
:接收原字符流,通过添加、删除或者替换操作改变原字符流。例如:去除文本中的html标签,或者将罗马数字转换成阿拉伯数字等。一个字符过滤器可以有零个或者多个
。 -
tokenizer
:简单的说就是将一整段文本拆分成一个个的词。例如拆分英文,通过空格能将句子拆分成一个个的词,但是对于中文来说,无法使用这种方式来实现。在一个分词器中,有且只有一个
tokenizeer -
token filters
:将切分的单词添加、删除或者改变。例如将所有英文单词小写,或者将英文中的停词a
删除等。在token filters
中,不允许将token(分出的词)
的position
或者offset
改变。同时,在一个分词器中,可以有零个或者多个token filters
默认ES使用standard analyzer
,如果默认的分词器无法符合你的要求,可以自己配置。
下载拼音分词插件,要和安装的es版本保持一致,解压改名乘pinyin放入到 es的plugins下,重启es;
在创建index mapping时可以指定 "analyzer": "pinyin_analyzer"
-----------专注于实时数仓,大数据存储、计算