ICU Analysis 插件是一组将 Lucene ICU 模块集成到 Elasticsearch 中的库。 本质上,ICU 的目的是增加对 Unicode 和全球化的支持,以提供对亚洲语言更好的文本分割分析。 从 Elasticsearch 的角度来看,此插件提供了文本分析中的新组件,如下表所示:

安装

我们可以首先到 Elasticsearch 的安装目录打入如下的命令:

$ pwd
/Users/liuxg/elastic/elasticsearch-7.3.0
(base) localhost:elasticsearch-7.3.0 liuxg$ ./bin/elasticsearch-plugin list
analysis-icu
analysis-ik
pinyin

上面显示我已经安装好了三个插件。上面的 analysis-ik 及 pinyin 都是为中文而准备的。这在我之前的文章中都有介绍。请详细阅读。

注意:如果你们在使用上面的 elasticsearch-plug list 命名出现如下的错误的话:

那么请使用如下的命令来删除在当前目录下的 .DS_Store 目录:

sudo find /Path/to/your/elasticsearch-folder -name ".DS_Store" -depth -exec rm {} \;

然后重新运行上面的命令就不会有问题了。

上面显示我已经安装好了。如果在你的电脑里没有安装好,可以使用如下的命令来进行安装:

./bin/elasticsearch-plugin install analysis-icu

上面的命令在 Elasticsearch 的安装目录里进行运行。等安装好后,我们需要重新启动 Elasticsearch 让它起作用。重新运行:

./bin/elasticsearch-plugin list

来检查 analysis-icu 是否已经被成功安装好了。

例子

等我们完全安装好了 analysis_icu,那么,我们可以使用如下的例子在 Kibana 中来做一个实验:

POST _analyze
{"text": "我爱北京天安门","analyzer": "icu_analyzer"
}

那么显示的结果是:

上面显示,我们 analysis 可以正确地帮我们把中文词语安装中文的分词方法正确地进行分词。

我们可以和 standard 分词器来进行一个比较:

我们从上面可以看出来,在默认的情况下,icu_analyzer 通常是一个及以上的字符的 token,而 standard 的 analyzer 只有一个字符。

通过更改字符过滤器和token的方法和模式参数,ICU分析器可以具有多种自定义变量类型。 下表描述了不同类型的ICU分析仪的组合:

让我们尝试 nfkd_normalized 分析器。 遵循定义并在 Kibana Dev Tools 控制台中对其进行测试。 响应显示在以下屏幕截图中。 但是,由于使用 nfkd_normalized 分析器和 icu_analyzer 分析器,我们无法在结果中找到任何差异:

POST _analyze
{"text": "股市投资稳赚不赔必修课:如何做好仓位管理和情绪管理","char_filter": [{"type": "icu_normalizer", "name": "nfkc", "mode":"decompose"}], "tokenizer": "icu_tokenizer"
}

运行结果:

{"tokens" : [{"token" : "股市","start_offset" : 0,"end_offset" : 2,"type" : "<IDEOGRAPHIC>","position" : 0},{"token" : "投资","start_offset" : 2,"end_offset" : 4,"type" : "<IDEOGRAPHIC>","position" : 1},{"token" : "稳赚","start_offset" : 4,"end_offset" : 6,"type" : "<IDEOGRAPHIC>","position" : 2},{"token" : "不","start_offset" : 6,"end_offset" : 7,"type" : "<IDEOGRAPHIC>","position" : 3},{"token" : "赔","start_offset" : 7,"end_offset" : 8,"type" : "<IDEOGRAPHIC>","position" : 4},{"token" : "必修","start_offset" : 8,"end_offset" : 10,"type" : "<IDEOGRAPHIC>","position" : 5},{"token" : "课","start_offset" : 10,"end_offset" : 11,"type" : "<IDEOGRAPHIC>","position" : 6},{"token" : "如何","start_offset" : 12,"end_offset" : 14,"type" : "<IDEOGRAPHIC>","position" : 7},{"token" : "做好","start_offset" : 14,"end_offset" : 16,"type" : "<IDEOGRAPHIC>","position" : 8},{"token" : "仓","start_offset" : 16,"end_offset" : 17,"type" : "<IDEOGRAPHIC>","position" : 9},{"token" : "位","start_offset" : 17,"end_offset" : 18,"type" : "<IDEOGRAPHIC>","position" : 10},{"token" : "管理","start_offset" : 18,"end_offset" : 20,"type" : "<IDEOGRAPHIC>","position" : 11},{"token" : "和","start_offset" : 20,"end_offset" : 21,"type" : "<IDEOGRAPHIC>","position" : 12},{"token" : "情绪","start_offset" : 21,"end_offset" : 23,"type" : "<IDEOGRAPHIC>","position" : 13},{"token" : "管理","start_offset" : 23,"end_offset" : 25,"type" : "<IDEOGRAPHIC>","position" : 14}]
}

要使用新定义的分析器,我们必须在 Index setting 中对其进行定义。请参阅我之前的文章 “Elasticsearch: analyzer”。

Elasticsearch:ICU 分词器介绍相关推荐

  1. Elasticsearch之Analyzer分词器介绍

    Elasticsearch之Analyzer分词器介绍 Analysis Analyzer的组成 ES中内置的分词器 Analyzer的使用 几种分词器介绍 Standard Analyzer Sim ...

  2. 【ES实战】ES分词器介绍

    文章目录 ES分词器介绍 什么是分词器 分词器的组成 Character filters Tokenizers Token filters 分词的过程 写入时分词 搜索时分词 测试分词效果 分词器的分 ...

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

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

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

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

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

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

  6. ElasticSearch IK 分词器快速上手

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

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

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

  8. 【Elasticsearch】Elasticsearch analyzer 分词器

    文章目录 1.概述 1.1 什么是analysis? 2.发生时期 3.开箱即用analyzer 3.1 默认的分词器 3.Analyze API 4.分词器介绍 4.1.标准分词器 Standard ...

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

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

最新文章

  1. java并发编程同步器 Semaphore、CyclicBarrier、Exchanger、CountDownLatch
  2. 新开窗口不被拦截的方法-window.open和表单提交form
  3. Linux环境下安装RocketMQ(MetaQ)
  4. 下载chrome驱动 for selenium库
  5. 一个方便使用的在线截图Web控件-WebImageMaker
  6. IDEA配置码云Gitee的使用详解
  7. winform 调用外部程序和多线程
  8. pkcs1与pkcs8格式RSA私钥互相转换
  9. java 接口编程iservices_java – 通用接口
  10. 【转(比较全面)】CSS3弹性盒模型之Flexbox是布局模块box-sizing box-orient box-direction box-ordinal-group
  11. linux 反汇编 静态库,如何反汇编.lib静态库?
  12. 莫烦pytorch学习笔记(三)
  13. 局域网共享工具_Win10局域网共享开启工具
  14. 国内OA 安全现状初探
  15. BAT薪资大揭底:AI程序员80万太少!程序员薪资的天花板在哪?
  16. PUCCH format2中的RM码(reed muller code)和Polar码
  17. 北大计算机图灵班,北大首期“图灵班”开班
  18. stream().filter匹配过滤总结
  19. 深度至尊GHOST_XPSP3快速装机专业版V8.0
  20. ubuntu18.04系统如何新建文档,并且把新建文档作为模板全局使用

热门文章

  1. 北京中医药大学《计算机基础》平时作业4,北京中医药大学《有机化学B》平时作业1...
  2. Cannot resolve symbol 'alibaba'
  3. 经纬度1秒约等于多少米?
  4. 诚念六字真言的一点体悟
  5. Qt 物联网系统界面开发 “ 2022湖南省大学生物联网应用创新设计竞赛技能赛 ——应用物联网的共享电动自行车 ”
  6. 卡内基梅隆大学计算机专业类别,CMU的Computer Science「卡内基梅隆大学计算机科学系」...
  7. JavaScript设计模式理解
  8. 二进制补码转换为十进制数的方法(数学层面)
  9. IDEA下载与安装(IDEA2021.2.2版本)
  10. 新硬盘装系统出现的问题