ElasticSearch分词器介绍

内置分词器

ElasticSearch的核心功能是数据检索,首先通过减速将文档写入ES,再进行查询分析。

  • 词条化:分词器将输入的文本转化为一个一个词条流
  • 过滤: 词挺流过滤器会从词条中去除不相干的词条(嗯,啊,的,呢);另外还有同义词过滤器,小写过滤器等。
    ElasticSearch中内置了多种分词器可以提供
    内置分词器:
分词器 做用
Standard Analyzer 标准分词器,适用于英语等
Simple Analyzer 简单分词器,基于非字母字符进行分词,单词会被转换成小写字母
Whitespace Analyzer 空格分词器,按照空格进行分词切分
Stop Analyzer 类似于简单的分期,但是又增加了停用词的功能
Keyword Analyzer 关键分词器,输入文本等于输出文本
Pattern Analyzer 利用正则表达式对文本进行切分,支持停用词
Language Analyzer 针对特定的语言进行分词器
Figerprint Analyzer 指纹分析仪分词器,通过创建标记进行重复检测

中文分词器

使用elasticsearch-analysis-ik 这个是es的一个第三方插件,代码再github上托管
仓库地址
使用方式:

  • 第一
    • 找到官网先下载下来
    • 解压
    • es/plugins目录下,新建ik目录 并将压缩后的文件拷贝到ik目录下
    • 重启es服务
image.png

测试使用:
创建索引 索引名为 test


image.png

在test索引中进行测试分词


image.png

自定义扩展词库

  • 本地自定义
    在es/plugins/ik/config 目录下 新建 ext.dic文件(文件任意命名) 在该文件中可以配置自定义词库。


    image.png

    image.png

    如果有多个词 换行写入新词即可
    然后再 配置分词器 es\plugins\ik\config\IKAnalyzer.cfg.xml 中配置扩展词典位置




    IK Analyzer 扩展配置
    
    ext.dic
     
    
    
    
    
    

需要重启es

  • 远程词库
    远程词库 支持热更新 不用重启 es 即可生效
    热更新只需要提供一个接口,接口返回扩展词 即可。
    具体实现 :
  • 创建一个springboot项目 引入web依赖即可。


    image.png

    然后再次配置





    
     http://localhost:8080/ext.dic 


然后启动 springboot项目
就可实现热更新
热更新 ,主要 是响应头的Last-Modified或者Etag字段发生变化 ik就会自动重新记载远程扩展词典

你可能感兴趣的:(ElasticSearch分词器介绍)