分词器

  • 分词器(Analyzer):将一段文本,按照一定逻辑,分析成多个词语的一种工具

    • 如:华为手机 — > 华为、手、手机
  • ElasticSearch 内置分词器
    • Standard Analyzer - 默认分词器,按词切分,小写处理
    • Simple Analyzer - 按照非字母切分(符号被过滤), 小写处理
    • Stop Analyzer - 小写处理,停用词过滤(the,a,is)
    • Whitespace Analyzer - 按照空格切分,不转小写
    • Keyword Analyzer - 不分词,直接将输入当作输出
    • Patter Analyzer - 正则表达式,默认\W+(非字符分割)
    • Language - 提供了30多种常见语言的分词器
  • ElasticSearch 内置分词器对中文很不友好,处理方式为: 一个字一个词

IK分词器

  • IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包
  • 是一个基于Maven构建的项目
  • 具有60万字/秒的高速处理能力
  • 支持用户词典扩展定义
  • 下载地址: https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip

使用IK分词器

IK分词器有两种分词模式:ik_max_word和ik_smart模式。

ik_max_word

会将文本做最细粒度的拆分,比如会将“乒乓球明年总冠军”拆分为“乒乓球、乒乓、球、明年、总冠军、冠军。

    #方式一ik_max_wordGET /_analyze{"analyzer": "ik_max_word","text": "乒乓球明年总冠军"}

ik_max_word分词器执行如下:

 {"tokens" : [{"token" : "乒乓球","start_offset" : 0,"end_offset" : 3,"type" : "CN_WORD","position" : 0},{"token" : "乒乓","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 1},{"token" : "球","start_offset" : 2,"end_offset" : 3,"type" : "CN_CHAR","position" : 2},{"token" : "明年","start_offset" : 3,"end_offset" : 5,"type" : "CN_WORD","position" : 3},{"token" : "总冠军","start_offset" : 5,"end_offset" : 8,"type" : "CN_WORD","position" : 4},{"token" : "冠军","start_offset" : 6,"end_offset" : 8,"type" : "CN_WORD","position" : 5}]}
ik_smart

会做最粗粒度的拆分,比如会将“乒乓球明年总冠军”拆分为乒乓球、明年、总冠军。

    #方式二ik_smartGET /_analyze{"analyzer": "ik_smart","text": "乒乓球明年总冠军"}

ik_smart分词器执行如下:

    {"tokens" : [{"token" : "乒乓球","start_offset" : 0,"end_offset" : 3,"type" : "CN_WORD","position" : 0},{"token" : "明年","start_offset" : 3,"end_offset" : 5,"type" : "CN_WORD","position" : 1},{"token" : "总冠军","start_offset" : 5,"end_offset" : 8,"type" : "CN_WORD","position" : 2}]}

【全文搜索引擎】Elasticsearch之分词器相关推荐

  1. Elasticsearch 默认分词器和中分分词器之间的比较及使用方法

    首发地址:http://www.54tianzhisheng.cn/2017/09/07/Elasticsearch-analyzers/ 介绍:ElasticSearch 是一个基于 Lucene ...

  2. 全文搜索引擎Elasticsearch,这篇文章给讲透了!(Elasticsearch技术原理及实现方式)

    关于Elasticsearch的技术原理及实现方式看了两篇讲的非常好的文章,在这里分享给大家. 其中一篇是: Elasticsearch 技术分析(九):全文搜索引擎Elasticsearch,这篇文 ...

  3. Elasticsearch 系列文章(一):Elasticsearch 默认分词器和中分分词器之间的比较及使用方法

    介绍:ElasticSearch 是一个基于 Lucene 的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口.Elasticsearch 是用 Java 开 ...

  4. 全文搜索引擎----ElasticSearch和Solr

    全文搜索引擎 ElasticSearch 还是 Solr? 最近项目组安排了一个任务,项目中用到了全文搜索,基于全文搜索 Solr,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量 ...

  5. Elasticsearch之分词器查询分词效果

    0.引言 Elasticsearch之分词器中文的我们一般使用IK,如果没有指定分词器.默认使用的是standard分词. IK分词能将中文分成词组: standard分词则会将每个中文分成一个单个的 ...

  6. Elasticsearch之分词器的工作流程

    前提 什么是倒排索引? Elasticsearch之分词器的作用 Elasticsearch的分词器的一般工作流程: 1.切分关键词 2.去除停用词 3.对于英文单词,把所有字母转为小写(搜索时不区分 ...

  7. ElasticSearch IK 分词器快速上手

    简介: ElasticSearch IK 分词器快速上手 一.安装 IK 分词器 1.分配伪终端 我的 ElasticSearch 是使用 Docker 安装的,所以先给容器分配一个伪终端.之后就可以 ...

  8. 【Es】ElasticSearch 自定义分词器

    1.分词器 转载:https://blog.csdn.net/gwd1154978352/article/details/83343933 分词器首先看文章:[Elasticsearch]Elasti ...

  9. 全文搜索引擎 Elasticsearch 入门概念

    基本概念 Node 与 Cluster Elastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例. 单个 Elastic 实例称为一个节点(nod ...

  10. ElasticSearch——IK分词器的下载及使用

    ElasticSearch--IK分词器的下载及使用 1.什么是IK分词器 ElasticSearch 几种常用分词器如下: 分词器 分词方式 StandardAnalyzer 单字分词 CJKAna ...

最新文章

  1. SQL Server 2005 Express附加(Attach)的数据库为“只读”的解决方法
  2. 21、Java并发性和多线程-Java中的锁
  3. CF682C Alyona and the Tree
  4. 征稿 | ​2020年全国知识图谱与语义计算大会
  5. 6000字讲透!特适合产品新人的成长指南(附成长路径图)
  6. QGroundControl源码编译安装
  7. 使用C#读写ini配置文件
  8. Qt打包发布程序,打包安装程序和打包为单个exe可执行程序,图文教程
  9. linux 多块网卡 bridge,理解linux虚拟网络设备bridge
  10. C++静态库与动态库的区别
  11. 皮尔森残差_用SPSS进行列联表分析(Crosstabs)实例
  12. 稳定性测试怎么测_药物稳定性试验的细枝末节该如何处理?
  13. nginx配置反向代理和负载均衡完结篇
  14. unity 之 Particle 二
  15. 江南大学计算机阶段测试题,江南大学2016.09计算机应用基础(专科类)第2阶段测试题...
  16. 当我们谈论基因,我们在谈论什么
  17. 数字工厂生产监控可视化决策平台,打造智能制造新时代
  18. [书籍翻译]12周撰写期刊文章 学术出版成功指南——第 2 周:开始您的文章
  19. android camera viewport rect,如何判断元素是否在可视区域ViewPort
  20. OV7725引脚配置

热门文章

  1. 【转】首先为人编写程序,其次才是计算机
  2. Linux C Socket编程原理及简单实例
  3. putty和Xming server 结合完美在windows下显示linux GUI程序
  4. 从零开始发布web项目(五)
  5. 世界编程大赛一等奖作品(转载)
  6. 消息队列的实践php,php消息队列处理实践 ,利用AMQP和redis两种方法
  7. js通过classname来获取元素
  8. 栈相关经典题:每日温度
  9. union与struct的区别?
  10. mybaits二十四:缓存原理示意图