zoukankan      html  css  js  c++  java
  • ElasticSearch(8)---IK分词器

    在这里插入图片描述

    上一篇:ElasticSearch(7)—倒排索引

    1. 什么是IK分词器?

      我们在使用百度搜索引擎的时候,经常会发现有一些标红的关键词,这些被标记的关键词分的还是非常精准的:
    在这里插入图片描述
      这里对中文进行分词使用的就是IK分词器技术,所谓分词就是将一段文字划分为一个个的关键字,在搜索的时候会把搜索的文字进行分词,对文档中的数据也进行分词,然后会将分词后的关键字进行匹配,默认的中文分词是将每个字作为一个词,比如好好学习使用中文分词器拆分之后就是。这种分词器显然不够优秀,而IK分词器提供了两种分词算法:ik_smartik_max_word

    要使用IK分词器,首先需要下载GitHub所有版本下载地址,将下载好得ik分词器放到elasticsearchplugins目录下:
    在这里插入图片描述

    注意:IK分词器与elasticsearch存在兼容问题,所以下载的ik分词器需要与当前的elasticsearch版本一致

    Ik分词器7.6.2版本下载
    提取码:3bfr

    将下载好得ik分词器放到elasticsearch得plugin目录下之后,启动es,我们会看到es会自动加载ik分词器:
    在这里插入图片描述
    打开kibana的开发工具:
    在这里插入图片描述
    测试两种不同的分词算法:

    2. ik_smart 分词算法

      ik_smart(最少切分)
    在这里插入图片描述
    在这里插入图片描述

    3. ik_max_word 分词算法

      ik_smart(最细粒度切分)
    在这里插入图片描述
    两种分词算法个人感觉ik_smart相当于就是一个最粗粒度划分,而ik_max_word是最细粒度划分

    4. 如何自定义词库

    ik分词器可以支持自定义词库,比如我们想让分词器识别“明我”,就需要自定义一个词库:

    1. 在ik分词器的config下面新建一个my.dic文件,文件中编辑输入明我
    2. 修改IKAnalyzer.cfg.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
    	<comment>IK Analyzer 扩展配置</comment>
    	<!--用户可以在这里配置自己的扩展字典 -->
    	<entry key="ext_dict">my.dic</entry>
    	 <!--用户可以在这里配置自己的扩展停止词字典-->
    	<entry key="ext_stopwords"></entry>
    	<!--用户可以在这里配置远程扩展字典 -->
    	<!-- <entry key="remote_ext_dict">words_location</entry> -->
    	<!--用户可以在这里配置远程扩展停止词字典-->
    	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
    </properties>
    
    

    在这里插入图片描述
      然后重启elasticsearch进行测试:

    未自定义词库前的分词:
    在这里插入图片描述
    使用自定义词库之后的分词:
    在这里插入图片描述
    可以看到分词器将明我识别为一个词。说明使用自定义词库成功。

    下一篇:ElasticSearch(9)—Rest风格
  • 相关阅读:
    关于SQL Server中的DateTime类型和C#中的DateTime类型的一点小记录
    强类型DataSet的使用简明教程2
    byte[]转string的感悟
    ArrayList的Insert方法
    FormsAuthenticationTicket对象
    powerdesigner设置唯一键,但不是主键的方式
    KeyValuePair用法(转)
    如何在安装过程中部署DevExpress控件
    asp.net GridView手写事件,包括取主键、取值、更新、选择、删除
    序列化(Serialize)、反序列化(Deserialize)
  • 原文地址:https://www.cnblogs.com/wgty/p/12810391.html
Copyright © 2011-2022 走看看