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"

posted @ 2021-12-27 14:59  再见傅里叶  阅读(941)  评论(0编辑  收藏  举报