码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • es(Elasticsearch)安装使用(03ik分词器安装篇)


    背景

    什么是分词

    把文本转换为一个个的单词,分词称之为analysis。es默认只对英文语句做分词,中文不支持,每个中文字都会被拆分为独立的个体。

    es 内置分词

    • standard:默认分词,单词会被拆分,大小会转换为小写。

    • simple:按照非字母分词。大写转为小写。

    • whitespace:按照空格分词。忽略大小写。

    • stop:去除无意义单词,比如the/a/an/is…

    • keyword:不做分词。把整个文本作为一个单独的关键词

    文章推荐

    es(Elasticsearch)安装使用(01es安装篇)_少年ing的博客-CSDN博客

    es(Elasticsearch)客户端Kibana安装使用(02Kibana安装篇)_少年ing的博客-CSDN博客

    es(Elasticsearch)安装使用(03ik分词器安装篇)_少年ing的博客-CSDN博客

    es(Elasticsearch)客户端Elasticsearch-head安装使用(04Elasticsearch-head安装篇)_少年ing的博客-CSDN博客

    版本声明

    CenOS:7.5阿里云服务器 关闭防火墙
    JDK:1.8;
    Elasticsearch:7.6.1;
    Kibana:7.6.1;
    IK:7.6.1;

    1、ik下载地址     

    注意和 要和es版本对应

    Releases · medcl/elasticsearch-analysis-ik · GitHub

    某网盘

    链接:https://pan.baidu.com/s/1-ADPvSk9wt0cjPAMP9nYKw
    提取码:k3yn

    2.安装

    2.1 使用 es用户 在es安装目录plugins下 创建ik目录

    su es   切换es用户

    mkdir ik

     

     2.2 将下载ik压缩包上传ik目录 并解压到该目录  解压后 删除压缩包负责启动有问题

    cd  /usr/local/elasticsearch-7.6.1/plugins/ik

    unzip elasticsearch-analysis-ik-7.6.1.zip

    若报  bash: unzip: command not found

    安装下 unzip

    yum install -y unzip zip

     2.3重启Elasticsearch

    在es 的bin目录先查询PID,然后杀死进程:

    ps -ef | grep elasticsearch

    启动es

    cd  /usr/local/elasticsearch-7.6.1/bin

    ./elasticsearch -d

    启动ES之后,ES会自己加载IK插件,如果启动ES成功,说明IK安装成功: 

    重启Kibana

    ES重启之后,ES的客户端Kibana也应该重启。

    1、root用户或者es用户都可以

    2、cd /usr/local/elasticsearch-7.6.1/kibana-7.6.1-linux-x86_64/bin

    3、./kibana -d

    2、测试分词效果

    #默认
    POST _analyze
    {
      "analyzer": "standard",
      "text": "我是中国人"
    }
    #ik  ik_smart 最少切分算法
    POST _analyze
    {
        "analyzer":"ik_smart",
        "text":"我是中国人"
    }

    #ik  ik_max_word 最细粒度切分算法
    POST _analyze
    {
        "analyzer":"ik_max_word",
        "text":"我是中国人"
    }

     

     

     3、指定IK分词器作为默认分词器
    ES的默认分词设置是standard,这个在中文分词时就比较尴尬了,会单字拆分,比如我搜索关键词“清华大学”,这时候会按“清”,“华”,“大”,“学”去分词,然后搜出来的都是些“清清的河水”,“中华儿女”,“地大物博”,“学而不思则罔”之类的莫名其妙的结果,这里我们就想把这个分词方式修改一下,于是呢,就想到了ik分词器,有两种ik_smart和ik_max_word。
    ik_smart会将“清华大学”整个分为一个词,而ik_max_word会将“清华大学”分为“清华大学”,“清华”和“大学”,按需选其中之一就可以了。
    修改默认分词方法(这里修改school_index索引的默认分词为:ik_max_word):
     

    PUT school_index
    {
    "settings" : {
    "index" : {
    "analysis.analyzer.default.type": "ik_max_word"
    }
    }
    }

    首先,咱们还是得分析出现此问题的原因

    前边也说了,其分词是基于自身的一个词典 进行分词的,出现此情况原因在于 ‘我是’ 这个词,我们的词典没有,所以不会吧这几个字切分为词,

    那么我们是不是可以根据一些业务场景自定义词典呢?

    答案是:当然可以!


    IK 分词器 自定义词典

    进入咱们的es plugins 下 进入ik分词器 目录,发现其配置文件中 ,说明了用户是可以自定义词典的!
    cd

    /usr/local/elasticsearch-7.6.1/plugins/ik/config

     

    那么我们按着此模式,也新建一个词典 随意取名.dic

    例如我定义一个词典 my.dic 在其中输入我业务场景所用的 我的

    1. touch my.dic

    2.  vim my.dic  

       输入  我的 

    保存

    在修改我们的配置文件 加入我们的自定义词典

    vim IKAnalyzer.cfg.xml

     重启es

    测试

    参考

    CentOS7下安装ElasticSearch7.6.1详细教程(单机、集群搭建)_@来杯咖啡的博客-CSDN博客_centos7安装elasticsearch

    ElasticSearch分词器IK安装教程_@来杯咖啡的博客-CSDN博客_elasticsearch ik分词安装

    Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典_保护我方胖虎的博客-CSDN博客_es 自定义词典

  • 相关阅读:
    港科夜闻|香港科技大学吴宏伟教授荣获国际滑坡协会(ICL)颁发2022年Varnes奖章...
    Vue知识点总结
    记账本简单应用-原生&vue的实现对比
    【嵌入式软件C编程】主函数free子函数malloc地址的两种方式以及注意事项
    LIEF:修改安卓.so后报 dlopen failed:has invalid shdr offset/size
    手撸大文件上传:实现切片上传,断点上传和文件秒传的功能。
    Huggingface的介绍,使用(CSDN最强Huggingface入门手册)
    Ubuntu20.04 配置 yolov5_ros 功能包记录
    Spring集成JDBC
    Centos7根目录扩容方法(添加一块磁盘扩容根目录)
  • 原文地址:https://blog.csdn.net/weixin_35815479/article/details/126194346
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号