当前位置: 首页 > news >正文

Elasticsearch7.8.0版本进阶——IK中文分词器

目录

    • 一、ES 的默认分词器测试示例
    • 二、IK 中文分词器
      • 2.1、IK 中文分词器下载地址
      • 2.2、ES 引入IK 中文分词器
      • 2.3、IK 中文分词器测试示例
    • 三、ES 扩展词汇测试示例

一、ES 的默认分词器测试示例

  • 通过 Postman 发送 GET 请求查询分词效果,在消息体里,指定要分析的文本

    # GET http://localhost:9200/_analyze
    {"text":"王者荣耀"
    }
    

    在这里插入图片描述

  • 输出结果如下:
    在这里插入图片描述

  • 由上图输出结果可知,ES 的默认分词器无法识别中文中测试、单词这样的词汇,而是简单的将每个字拆完分为一个词,这样的结果显然不符合我们的使用要求,所以我们需要下载 ES 对应版本的中文分词器。

二、IK 中文分词器

2.1、IK 中文分词器下载地址

  • 下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.8.0
    在这里插入图片描述

2.2、ES 引入IK 中文分词器

  • 将IK 中文分词器安装包解压,然后把解压后的文件夹放入 ES 根目录下的 plugins 目录下,重启 ES 即可使用。
    在这里插入图片描述

  • 注意:ES的安装目录一定不要带有中文或者空格,否则引入IK 中文分词器会报如下错误:

    java.security.AccessControlException: access denied ("java.io.FilePermission""D:\Program Files\elasticsearch-7.8.0\plugins\elasticsearch-analysis-ik-7.8.0\config\IKAnalyzer.cfg.xml" "read")
    

2.3、IK 中文分词器测试示例

  • 通过 Postman 发送 GET 请求查询分词效果,在消息体里,指定分析器和要分析的文本

    # GET http://localhost:9200/_analyze
    {"analyzer":"ik_max_word","text": "王者荣耀"
    }
    

    在这里插入图片描述

  • 分析器的key值解释

    分析器的key值分析器的key值解释
    ik_max_word会将文本做最细粒度的拆分
    ik_smart会将文本做最粗粒度的拆分
  • 使用IK中文分词后的结果为:
    在这里插入图片描述

三、ES 扩展词汇测试示例

  • 通过 Postman 发送 GET 请求查询分词效果,在消息体里,指定分析器和要分析的文本

    # GET http://localhost:9200/_analyze
    {"text":"弗雷尔卓德","analyzer":"ik_max_word"
    }
    
  • 输出结果如下:
    在这里插入图片描述

  • 由上图输出结果可知,仅仅可以得到每个字的分词结果。如何使分词器识别到弗雷尔卓德也是一个词语。

  • 首先进入 ES 根目录中的 plugins 文件夹下的 ik 文件夹,进入 config 目录,创建 custom.dic
    文件,写入弗雷尔卓德。,如下图:

    在这里插入图片描述

  • 注意:custom.dic文件内容的格式的编码为UTF-8格式编码,否则会导致扩展词汇失效。

    在这里插入图片描述

  • 同时打开 IKAnalyzer.cfg.xml 文件,将新建的 custom.dic 配置其中,如下图:

    在这里插入图片描述

  • 重启 ES 服务器。由下图可知,文件确实被加载了。
    在这里插入图片描述

  • 然后通过 Postman 发送 GET 请求查询分词效果。如下图:
    在这里插入图片描述

http://www.lryc.cn/news/20072.html

相关文章:

  • 一个阿里P6的说不会接口自动化测试,他不会是自己评的吧...
  • 规则引擎与风控系统04:风控系统实例(下)
  • 我为什么选择Linux mint 21.1 “Vera“ ? Mint安装优化调教指南(分辨率DPI)
  • 雅思经验(十四)
  • 刚来的薪资20k,是我的2倍,我是真的卷不过,真的太变态了
  • 五、DeepWalk、Node2Vec论文精读与代码实战【CS224W】(Datawhale组队学习)
  • 学习 Python 之 Pygame 开发魂斗罗(四)
  • Linux 基础知识:指令与shell
  • 【数通网络交换基础梳理1】二层交换机、以太网帧、MAC地址数据帧转发原理详解
  • 《分布式技术原理与算法解析》学习笔记Day22
  • [MySQL]MySQL数据类型
  • 利用steam搬砖信息差赚钱,单账号200+,小白也能轻松上手!
  • 树与二叉树与森林的相关性质
  • MySQL面试题
  • 【蓝桥OJ—C语言】高斯日记、马虎的算式、第39级台阶
  • 基于深度学习的三维重建网络PatchMatchNet(二):dtu数据集介绍及PatchMatchNet中加载数据部分代码解析
  • 一文3000字从0到1实现基于requests框架接口自动化测试项目实战(建议收藏)
  • 【RockerMQ】001-RockerMQ 概述
  • 阿里是如何做Code Review的?
  • 内核调试:一次多线程调试与KASAN检测实例
  • Java - 数据结构,队列
  • ccc-pytorch-感知机算法(3)
  • LeetCode 225.用队列实现栈
  • 【面试】spring控制反转IOC
  • Spring 事务管理详解及使用
  • LeetCode 232.用栈实现队列
  • go面向对象思想封装继承多态
  • 【网络原理9】HTTP响应篇
  • SpringCloud之Seata(二)
  • 【Redis-入门阶段】基本数据结构