ElasticSearch笔记-IK中文分析器

中文分析器

IK(推荐)、jieba、THULAC
英文我们可以按照空格将一句话、一篇文章进行分词,然后对分词进行过滤,最后留下有意义的词。中文的一句话是没有空格的,这就要有一个强大的中文词库,当你的内容中出现这个词时,就会将这个词提炼出来。
查看分词器的分词结果(ik分词器有两种ik_smart、ik_max_word):

GET /_analyze
{
  "analyzer": "ik_max_word",
  "text": ["我是中国人你是美国人content内容123 "]
}

IK中文分析器的安装

ES默认是没有IK中文分词器的,我们要将IK中文分词器作为一个插件安装到ES中,安装的步骤也很简单:

步骤如下:
wget

IK中文分析器初探

IK中文分词器插件给我们提供了两个分析器

  • ik_max_word: 会将文本做最细粒度的拆分
  • ik_smart:会做最粗粒度的拆分

IK词库热更新

打开配置文件/plugins/ik/config/IKAnalyzer.cfg.xml

<properties>
	<comment>IK Analyzer 扩展配置</comment>
	<!--用户可以在这里配置自己的扩展字典 -->
	<entry key="ext_dict"></entry>
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords"></entry>
	<!--用户可以在这里配置远程扩展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

通过remote_ext_dict配置扩展词URL;通过remote_ext_stopwords配置停止词URL
http请求需要返回两个header,Last-Modified和ETag,都是字符串类型,只要其中一个发生变化,该插件就会抓取新的分词,进而更新词库。
返回的内容格式是一行一个分词,换行符用\n即可。
满足上面两点要求就可以实现热更新分词,不需要重启ES实例

posted @ 2022-01-01 20:35  .Neterr  阅读(31)  评论(0)    收藏  举报