ElasticSearch 分词器介绍及测试:Standard(标准分词器)、English(英文分词器)、Chinese(中文分词器)、IK(IK 分词器)

ElasticSearch 分词器介绍及测试:Standard(标准分词器)、English(英文分词器)、Chinese(中文分词器)、IK(IK 分词器)

  • ElasticSearch 分词器介绍及测试
    • 1. Standard Analyzer(标准分词器)
    • 2. English Analyzer(英文分词器)
    • 3. Chinese Analyzer(中文分词器)
    • 4. IK Analyzer(IK 分词器)
    • 官网资源
    • 小结

本文 ElasticSearch 版本为:7.17.9,为了对应 spring-boot-starter-parent2.7.9 版本

ElasticSearch 分词器介绍及测试

ElasticSearch 提供了多种内置的分词器(Analyzer),用于文本的分析和分词。分词器是文本分析的核心,决定了如何把输入的文本字符串分解成一个个“词项”(token)。不同的分词器适用于不同的语言和场景,如中文、英文等。本文将介绍常用的分词器及其应用。

1. Standard Analyzer(标准分词器)

  • 功能standard 是 ElasticSearch 的默认分词器,基于 Unicode 文本分解标准,适用于多种语言。它会将文本中的标点符号、常见停用词移除,并将文本转化为小写。
  • 用途:适用于大多数通用场景,尤其是处理混合语言或没有特殊分词需求的情况。
  • 分词示例
    • 输入:"The quick brown fox"
    • 输出:["the", "quick", "brown", "fox"]

使用 ElasticSearch 的可视化界面 Kibana 的调试工具 Dev Tools 调用解析接口测试:

# `standard` 是 ElasticSearch 的默认分词器,基于 Unicode 文本分解标准,适用于多种语言。它会将文本中的标点符号、常见停用词移除,并将文本转化为小写。
POST /_analyze
{"analyzer": "standard","text": "The quick brown fox"
}

解析结果:

#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html to enable security.
{"tokens" : [{"token" : "the","start_offset" : 0,"end_offset" : 3,"type" : "<ALPHANUM>","position" : 0},{"token" : "quick","start_offset" : 4,"end_offset" : 9,"type" : "<ALPHANUM>","position" : 1},{"token" : "brown","start_offset" : 10,"end_offset" : 15,"type" : "<ALPHANUM>","position" : 2},{"token" : "fox","start_offset" : 16,"end_offset" : 19,"type" : "<ALPHANUM>","position" : 3}]
}

2. English Analyzer(英文分词器)

  • 功能english 分词器专用于英文文本的分析,除了进行基本的分词,还会进行停用词过滤,并将所有文本转换为小写字母。
  • 用途:适用于英文文本的分析,特别是在英文搜索引擎或英文数据处理中。
  • 分词示例
    • 输入:"The quick brown fox"
    • 输出:["quick", "brown", "fox"]the 被移除作为停用词)

使用 ElasticSearch 的可视化界面 Kibana 的调试工具 Dev Tools 调用解析接口测试:

# `english` 分词器专用于英文文本的分析,除了进行基本的分词,还会进行停用词过滤,并将所有文本转换为小写字母。
POST /_analyze
{"analyzer": "english","text": "The quick brown fox"
}

解析结果:

#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html to enable security.
{"tokens" : [{"token" : "quick","start_offset" : 4,"end_offset" : 9,"type" : "<ALPHANUM>","position" : 1},{"token" : "brown","start_offset" : 10,"end_offset" : 15,"type" : "<ALPHANUM>","position" : 2},{"token" : "fox","start_offset" : 16,"end_offset" : 19,"type" : "<ALPHANUM>","position" : 3}]
}

3. Chinese Analyzer(中文分词器)

  • 功能chinese 分词器专为中文文本设计,基于分词字典并结合最大匹配法等技术,将中文文本分解成多个词项。
  • 用途:适用于中文文本的分词处理,特别是中文搜索引擎和中文语料处理。对中文的解析很差
  • 分词示例
    • 输入:"今天天气很好"
    • 期望的输出:["今天", "天气", "很", "好",]
    • 实际的输出:["今","天", "天","气", "很", "好"]

使用 ElasticSearch 的可视化界面 Kibana 的调试工具 Dev Tools 调用解析接口测试:

# `chinese` 分词器专为中文文本设计,基于分词字典并结合最大匹配法等技术,将中文文本分解成多个词项。
# `chinese` 分词器专为中文文本设计,基于分词字典并结合最大匹配法等技术,将中文文本分解成多个词项。
POST /_analyze
{"analyzer": "chinese","text": "今天天气很好"
}

解析结果:

#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html to enable security.
{"tokens" : [{"token" : "今","start_offset" : 0,"end_offset" : 1,"type" : "<IDEOGRAPHIC>","position" : 0},{"token" : "天","start_offset" : 1,"end_offset" : 2,"type" : "<IDEOGRAPHIC>","position" : 1},{"token" : "天","start_offset" : 2,"end_offset" : 3,"type" : "<IDEOGRAPHIC>","position" : 2},{"token" : "气","start_offset" : 3,"end_offset" : 4,"type" : "<IDEOGRAPHIC>","position" : 3},{"token" : "很","start_offset" : 4,"end_offset" : 5,"type" : "<IDEOGRAPHIC>","position" : 4},{"token" : "好","start_offset" : 5,"end_offset" : 6,"type" : "<IDEOGRAPHIC>","position" : 5}]
}

4. IK Analyzer(IK 分词器)

  • 官网资源:IK Analyzer GitHub 页面
  • 功能IK Analyzer 是一个开源的中文分词器,专门用于处理中文文本。它结合了多种中文分词技术,支持细粒度和粗粒度的分词。
  • 安装:需要作为 ElasticSearch 插件安装,支持通过精确模式和智能模式两种分词策略。
  • 分词示例
    • 输入:"今天天气不错,适合出游"
    • ik_smart(最少切分)["今天天气", "不错", "适合", "出游"]
    • ik_max_word(最细切分)["今天天气", "今天", "天天", "天气", "不错", "适合", "合出", "出游"]
  • 扩展词典:支持自定义扩展词典,用户可以添加特定词语、行业术语、网络热词等。【安装IK分词器;IK分词器配置扩展词库:配置扩展字典-扩展词,配置扩展停止词字典-停用词】

使用 ElasticSearch 的可视化界面 Kibana 的调试工具 Dev Tools 调用解析接口测试:

# `IK Analyzer` ik_smart(最少切分)。
POST /_analyze
{"analyzer": "ik_smart","text": "今天天气不错,适合出游"
}

解析结果:

#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html to enable security.
{"tokens" : [{"token" : "今天天气","start_offset" : 0,"end_offset" : 4,"type" : "CN_WORD","position" : 0},{"token" : "不错","start_offset" : 4,"end_offset" : 6,"type" : "CN_WORD","position" : 1},{"token" : "适合","start_offset" : 7,"end_offset" : 9,"type" : "CN_WORD","position" : 2},{"token" : "出游","start_offset" : 9,"end_offset" : 11,"type" : "CN_WORD","position" : 3}]
}

使用 ElasticSearch 的可视化界面 Kibana 的调试工具 Dev Tools 调用解析接口测试:

# `IK Analyzer` ik_smart(最少切分)。
POST /_analyze
{"analyzer": "ik_smart","text": "今天天气不错,适合出游"
}

解析结果:

#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html to enable security.
{"tokens" : [{"token" : "今天天气","start_offset" : 0,"end_offset" : 4,"type" : "CN_WORD","position" : 0},{"token" : "今天","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 1},{"token" : "天天","start_offset" : 1,"end_offset" : 3,"type" : "CN_WORD","position" : 2},{"token" : "天气","start_offset" : 2,"end_offset" : 4,"type" : "CN_WORD","position" : 3},{"token" : "不错","start_offset" : 4,"end_offset" : 6,"type" : "CN_WORD","position" : 4},{"token" : "适合","start_offset" : 7,"end_offset" : 9,"type" : "CN_WORD","position" : 5},{"token" : "合出","start_offset" : 8,"end_offset" : 10,"type" : "CN_WORD","position" : 6},{"token" : "出游","start_offset" : 9,"end_offset" : 11,"type" : "CN_WORD","position" : 7}]
}

官网资源

你可以访问 ElasticSearch 官方文档页面,获取有关不同分词器和分析器的详细介绍,以及如何配置和使用它们:

  • ElasticSearch 分析器官方文档

小结

ElasticSearch 提供了多种内置分词器,能够适应不同语言和文本格式的需求。选择合适的分词器对于实现高效的搜索和分析至关重要。你可以根据实际的应用场景选择 standardchineseenglish 等分词器,或根据需要创建自定义分词器来满足特定的文本分析需求。如果你有特殊的需求,可以深入研究分词器的配置选项和扩展方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/72884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】确认家庭网络是千兆/百兆带宽并排查问题

要确认你的带宽是千兆&#xff08;1000Mbps&#xff09;还是百兆&#xff08;100Mbps&#xff09;&#xff0c;可以通过以下方法逐步排查&#xff1a; 一、检查物理设备 1. 查看路由器和光猫的网口 千兆网口&#xff1a;路由器或光猫的网口旁通常会标注 “10/100/1000M” 或 …

[数据分享第七弹]全球洪水相关数据集

洪水是一种常见的自然灾害&#xff0c;在全球范围内造成了极为严重的威胁。近年来&#xff0c;针对洪水事件的检测分析&#xff0c;以及对于洪水灾害和灾后恢复能力的研究日渐增多&#xff0c;也产生了众多洪水数据集。今天&#xff0c;我们一起来收集整理一下相关数据集。&…

深入探讨AI-Ops架构 第一讲 - 运维的进化历程以及未来发展趋势

首先&#xff0c;让我们一起回顾运维的进化之路&#xff0c;然后再深入探讨AI-Ops架构的细节。 运维的进化历程 1. AI 大范围普及前的运维状态 (传统运维) 在AI技术尚未广泛渗透到运维领域之前&#xff0c;我们称之为传统运维&#xff0c;其主要特点是&#xff1a; 人工驱动…

Hive-数据倾斜优化

数据倾斜的原因 1&#xff09;key分布不均匀&#xff0c;本质上就是业务数据有可能会存在倾斜 2&#xff09;某些SQL语句本身就有数据倾斜 关键词 情形 后果 Join A、其中一个表较小&#xff0c;但是key集中; B、两张表都是大表&#xff0c;key不均 分发到…

番外篇 - Docker的使用

一、Docker的介绍 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完…

深度学习与普通神经网络有何区别?

深度学习与普通神经网络的主要区别体现在以下几个方面&#xff1a; 一、结构复杂度 普通神经网络&#xff1a;通常指浅层结构&#xff0c;层数较少&#xff0c;一般为2-3层&#xff0c;包括输入层、一个或多个隐藏层、输出层。深度学习&#xff1a;强调通过5层以上的深度架构…

RuleOS:区块链开发的“新引擎”,点燃Web3创新之火

RuleOS&#xff1a;区块链开发的“新引擎”&#xff0c;点燃Web3创新之火 在区块链技术的浪潮中&#xff0c;RuleOS宛如一台强劲的“新引擎”&#xff0c;为个人和企业开发去中心化应用&#xff08;DApp&#xff09;注入了前所未有的动力。它以独特的设计理念和强大的功能特性&…

c# MimeEntity修改邮件附件名称

在C#中&#xff0c;当你使用如MimeKit库来处理电子邮件时&#xff0c;你可以通过修改MimeEntity的ContentDisposition属性来更改邮件附件的名称。以下是如何做到这一点的步骤&#xff1a; 1. 添加MimeKit引用 首先&#xff0c;确保你的项目中已经添加了MimeKit库。如果你使用…

Windows编译环境搭建(MSYS2\MinGW\cmake)

我的音视频/流媒体开源项目(github) 一、基础环境搭建 1.1 MSYS2\MinGW 参考&#xff1a;1. 基于MSYS2的Mingw-w64 GCC搭建Windows下C开发环境_msys2使用mingw64编译 在Widndows系统上&#xff0c;使用gcc工具链&#xff08;g&#xff09;进行C程序开发&#xff1f;可以的&a…

TikTok美国战略升级:聚焦美食旅行,本地化服务如何重塑市场格局

平台深耕本土内容生态&#xff0c;餐饮旅游创作者迎流量红利&#xff0c;算法推荐机制激发地域经济新活力 过去一年&#xff0c;TikTok在美国市场的动作频频引发行业关注。从早期以娱乐、舞蹈为主的全球化内容&#xff0c;到如今将资源向美食、旅行两大垂类倾斜&#xff0c;这…

Unity Dots环境配置

文章目录 前言环境配置1.新建Unity 工程2.安装Entities包2.安装EntitiesGraphics包3.安装URP渲染管线 Dots窗口 前言 DOTS&#xff08;Data-Oriented Technology Stack&#xff09;是Unity推出的一种用于开发高性能游戏和应用的数据导向技术栈&#xff0c;包含三大核心组件&am…

manus对比ChatGPT-Deep reaserch进行研究类学术相关数据分析!谁更胜一筹?

没有账号&#xff0c;只能挑选一个案例 一夜之间被这个用全英文介绍全华班出品的新爆款国产AI产品的小胖刷频。白天还没有切换语言的选项&#xff0c;晚上就加上了。简单看了看团队够成&#xff0c;使用很长实践的Monica创始人也在其中。逐渐可以理解&#xff0c;重心放在海外产…

Python项目-基于Django的在线教育平台开发

1. 项目概述 在线教育平台已成为现代教育的重要组成部分&#xff0c;特别是在后疫情时代&#xff0c;远程学习的需求显著增加。本文将详细介绍如何使用Python的Django框架开发一个功能完善的在线教育平台&#xff0c;包括系统设计、核心功能实现以及部署上线等关键环节。 本项…

【自学笔记】Numpy基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Numpy基础知识点总览目录1. 简介Numpy是什么为什么使用Numpy 2. 数组对象&#xff08;ndarray&#xff09;创建数组数组的属性数组的形状操作 3. 数组的基本操作数组…

Kubernetes中的 iptables 规则介绍

#作者&#xff1a;邓伟 文章目录 一、Kubernetes 网络模型概述二、iptables 基础知识三、Kubernetes 中的 iptables 应用四、查看和调试 iptables 规则五、总结 在 Kubernetes 集群中&#xff0c;iptables 是一个核心组件&#xff0c; 用于实现服务发现和网络策略。iptables 通…

.NET Core全屏截图,C#全屏截图

.NET Core全屏截图&#xff0c;C#全屏截图 使用框架&#xff1a; WPF.NET 8 using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Linq; using System.Text; using System.Threading.Tasks; using System.W…

Java直通车系列15【Spring MVC】(ModelAndView 使用)

目录 1. ModelAndView 概述 2. ModelAndView 的主要属性和方法 主要属性 主要方法 3. 场景示例 示例 1&#xff1a;简单的 ModelAndView 使用 示例 2&#xff1a;使用 ModelAndView 处理列表数据 示例 3&#xff1a;使用 ModelAndView 处理异常情况 1. ModelAndView 概…

视频图像刷新到HTTP的原理

上一篇博客已经说了cgi拿到了共享内存的程序还需要处理的才能够真正刷新到网页里面去 HTTP协议介绍 HTTP中文名称是超文本传输协议&#xff0c;它是一个简单的请求.响应协议&#xff0c;HTTP协议它运行在TCP上面&#xff0c;它是互联网数据通信的基础。 几乎所有的网页请求和互…

2024四川大学计算机考研复试上机真题

2024四川大学计算机考研复试上机真题 2024四川大学计算机考研复试机试真题 历年四川大学计算机考研复试机试真题 在线评测&#xff1a;https://app2098.acapp.acwing.com.cn/ 分数求和 题目描述 有一分数序列&#xff1a; 2/1 3/2 5/3 8/5 13/8 21/13… 求出这个数列的前 …

Python评估网络脆弱性

一、网络安全 &#xff08;1&#xff09;网络安全的定义 网络安全是指计算机网络系统中的硬件、数据、程序等不会因为无意或恶意的原因而遭到破坏、篡改、泄露&#xff0c;防止非授权的使用或访问&#xff0c;系统能够保持服务的连续性&#xff0c;以及能够可靠的运行。网络安…