Elasticsearch分词

分词器介绍

  Elasticsearch作为全文检索服务是需要将输入的搜索关键字,也就是字符串进行一定规则的拆分,而拆分搜索关键字为一个个词,这部分功能是有ES的分词器来完成的。分词器(analyzer) 接受一个字符串作为输入,将这个字符串拆分成独立的词或 语汇单元(token)(可能会丢弃一些标点符号等字符),然后输出一个 语汇单元流(token stream) 。ES内部也集成了分词器。

  ES中文分词器有常见四种

    1. Standard:ES默认的分词器,将词汇单元转换为小写形式,并且去除停用词(在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据或文本之前或之后会自动过滤掉某些字或词)、标点符号,支持中文(单字切分)。

    2. Simple:通过非字母字符来分割文本信息,然后将词汇单元统一转换为小写形式,会去除掉数字类型的字符。

    3. Whitespace:仅仅是去除空格、不支持中文,对分割的词汇单元不做标准化的处理,也不会将字符转换成小写。

    4. language:特定语言分词器,但是不支持中文。

 IKAnalyzer分词器的安装及使用

  我们先使用Kibana来查看分词点效果。

    指定分词器进行分词

POST _analyze
{
  "analyzer": "standard", #指定分词方式
  "text":"hello 中国"
}

    使用POST方式向ES发起分词请求,下图使用的是Standard分词方式,他可以支持中英文。

  

   上面结果看到将中文的部分按照单个字为最小词元来拆分,这个分词效果并不好,所以我们使用ES中一个分词器iK分词器,这个分词器是目前支持中文比较好的第三方分词器插件。

    ik分词器ES插件地址github地址:https://github.com/medcl/elasticsearch-analysis-ik

   下载安装

       从这个Releases点击进去,找到适合当前适合ES的版本。

  

  我当前本地安装的ES版本是5.2.2,所以我下载就是5.2.2这个版本

  

  安装过程

1. 下载   wget -c https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.2/elasticsearch-analysis-ik-5.5.2.zip   #使用断点续传 

2. 解压unzip elasticsearch-analysis-ik-5.2.2.zip -d /usr/local/src/elasticsearch-5.5.2/plugins/ik #在ES插件目录下创建ik目录 并将ik插件解压在ik目录下

3. 查看解压后目录内容
commons-codec-1.9.jar
commons-logging-1.2.jar
config
elasticsearch-analysis-ik-5.2.2.jar
httpclient-4.5.2.jar
httpcore-4.4.4.jar
plugin-descriptor.properties

解压的目录如果错误会提示类似下面这种错误

下载并解压好之后,我们需要重启ES才能使插件生效。

IKAnalyzer分词器默认提供了两种分词器,ik_syno 和 ik_syno_smart 这两个。

上图使用了ik_smart分词器的结果可以说明已经识别了中文。

再看看ik_max_word的分词效果。

发现使用了ik_max_word分词的结果比ik_smart分词要多。

通过使用了IKAnalyzer分词器,我们发现它能够更能智能的识别中文,这是因为IKAnalyzer分词器内置了很多中文字典,提供给ES使用。这些字典位于IKAnalyzer分词器config目录中,文件后缀是dic的。

查看main.dic文件里的内容,里面的每一行文字都是分词器预先内置好的最小的词元,

如果我们想要自定义自己的词元就可以添加在里面。

(0)

相关推荐

  • 【windows】【消息中间件】【安装】Elasticsearch

    准备工作 elasticsearch的下载地址:https://www.elastic.co/cn/downloads/elasticsearch ik分词器的下载地址:https://github. ...

  • ES入门及安装软件

    es介绍 Elasticsearch,简称es,是一款高扩展的分布式全文检索引擎.它可以近乎实时的存储,检索数据.es是面向文档型的数据库,一条数据就是一个文档,用json做为文档序列化的格式.es是 ...

  • ElasticSearch使用

    前言 Lucene使用起来有点麻烦,其实现在企业中使用原生Lucene来进行搜索的很少了,使用Solr和ElasticSearch比较多,Solr和ElasticSearch都是基于Lucene开发的 ...

  • 〈四〉ElasticSearch的认识:基础原理的补充

    目录 想想我们漏了什么 回顾 补回 集群的建立 集群发现机制 配置文件 健康状态 补充: 小节总结 分片的管理 梳理 分片的均衡分配 主副分片的排斥 容错性: 数据路由 对于集群健康状态的影响 小节总 ...

  • 搜索引擎springboot集成(elasticSearch)

    各位小伙伴们,今天是今年的最后一天,这是我今年的最后一篇博客,在这里祝大家新年快乐!本次讲的是近几年比较流行的search搜索引擎,本文写的比较粗略,希望大家看了会有所收获,如若写错,请在评论区指出, ...

  • 在Linux中安装ElasticSearch&Kibana&ik分词器

    概述: ElasticSearch是一个基于Lucene的搜索服务器 是一个分布式.高扩展.高实时的搜索与数据分析引擎 基于RESTful web接口 Elasticsearch是用Java语言开发的 ...

  • 一文入门.NET Core操作ElasticSearch 7.x

    原创 青城 青城同学 1周前在互联网上,随处可见的搜索框.背后所用的技术大多数就是全文检索.在全文检索领域,常见的库/组件有:Lucene.Solr.Sphinx.ElasticSearch等.简单对 ...

  • 动词过去式和过去分词的变化规则

    动词过去式和过去分词的变化规则

  • 运用思维导图制作英语分词

    运用思维导图制作英语分词 [转] 搜狐媒体平台 02-21 21:03 大 思维导图看似简单,然而真的一点也不简单.导图成品用做老师讲课.会议记录.复习笔记.创新思维.归纳整理.作文联想等帮助甚大,绝 ...

  • 小学英语语法专题:动词现在分词ing形式的构成

    上一期: 小学英语语法:  名词复数的规则变化 现在分词的构成的几种情况: (1)直接在动词后加ing 如:sing-singing;read-- reading; play--playing,wat ...

  • 小学英语学习方法有哪些,现在分词变化双写尾字母的

    同学们好,我是林老师,欢迎大家和老师一起轻松有趣学语法. 什么是现在进行时?它表示正在进行或者正在做的事.句型为:主语+be+动词ing形式. 现在分词变化形式通常加ing,但变化有几种形式,不同的动 ...

  • 中间件:ElasticSearch组件RestHighLevelClient用法详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.基础API简介 1.RestHighLevelClient RestHighLevelClient的API作为ElasticSearch备 ...

  • 常用不规则动词的过去式和过去分词发音

    ----每日学英语---- 可以在线查词.翻译.学习精彩英语短句.搜索大量英语学习资料 点点点,赞和在看都在这儿!

  • ElasticSearch安装

    定义: Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索.结构化检索和分析,并能将这三者结合起来.Elasticsearch .ElasticSearch是一个基于Lucen ...