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

news2025/3/10 0:55:51

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.coloradmin.cn/o/2312419.html

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

相关文章

Linux网络相关内容与端口

网络相关命令 ping命令测试连接状态 wget命令&#xff1a;非交互式文件下载器&#xff0c;可以在命令行内下载网络文件 使用ctrlc可以中止下载 curl命令&#xff1a;可以发送http网络请求&#xff0c;用于文件下载、获取信息等 其实和浏览器打开网站一样&#xff0c;cu…

【招聘精英】

我们公司是一个位于石家庄的一个科技型新型技术公司。主要做人力资源、用工、科技等方面。 有意向回石家庄的或者已经在石家庄的技术大咖、软件大牛、产品大佬、UI大神可以来了解一下。 现在招聘 高级前端开发 高级java开发 其他岗位也可以联系。 有意向的朋友可以私信我。 -…

ESP8266 NodeMCU 与 Atmega16 微控制器连接以发送电子邮件

NodeMCU ESP8266 AVR 微控制器 ATmega16 的接口 Atmega16 是一款低成本的 8 位微控制器,比以前版本的微控制器具有更多的 GPIO。它具有所有常用的通信协议,如 UART、USART、SPI 和 I2C。由于其广泛的社区支持和简单性,它在机器人、汽车和自动化行业有广泛的应用。 Atmega1…

MongoDB用户管理和复制组

用户管理 1、建用户时&#xff0c;use到的库就是此用户的验证库 2、登录时必须明确指定验证库才能登录 3、通常管理员用的验证库是admin&#xff0c;普通用户的验证库一般是所管理的库设置为验证库 4、如果直接登录到数据库&#xff0c;不进行use&#xff08;示例&#xff…

SQLAlchemy系列教程:集成Pydantic增强数据处理能力

本教程介绍如何将Pydantic用于数据验证&#xff0c;SQLAlchemy用于数据库操作&#xff0c;从而通过强大的数据处理能力增强Python应用程序。 介绍 在现代web开发中&#xff0c;确保数据的有效性和完整性至关重要。Pydantic和SQLAlchemy是两个功能强大的Python库&#xff0c;可…

【数据结构初阶】---堆的实现、堆排序以及文件中的TopK问题

1.树的概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&…

IP,MAC,ARP 笔记

1.什么是IP地址 IP 地址是一串由句点分隔的数字。IP 地址表示为一组四个数字&#xff0c;比如 192.158.1.38 就是一个例子。该组合中的每个数字都可以在 0 到 255 的范围内。因此&#xff0c;完整的 IP 寻址范围从 0.0.0.0 到 255.255.255.255。 IP 地址不是随机的。它们由互…

【记录】Python3|Linux下安装Virtualenv和virtualenvwrapper用于处理虚拟环境

之前写过一篇Anaconda的&#xff1a;【安装】Python3&#xff5c;Windows下安装Anaconda、pytorch&#xff0c;以及修改pip默认安装路径_anaconda pip修改安装的包路径-CSDN博客 还写过一篇专门讲所有虚拟环境的&#xff1a;【记录】环境&#xff5c;Ubuntu18.04 Python 开发环…

VSTO(C#)Excel开发3:Range对象 处理列宽和行高

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

Selenium库打开指定端口(9222、9333等)浏览器【已解决!!!】

就是在写动态爬虫爬取数据的过程中&#xff0c;如果用selenium的话&#xff0c;有一个缺点&#xff0c;就是当我们去测试一个网站能不能爬取&#xff0c;它都会重新换端口打开一个浏览器&#xff0c;不会使用上一次使用的浏览器&#xff0c;在实际使用过程中这样调试很烦&#…

蓝桥杯备考:倍增算法详解

如果我们想暴力求解的话&#xff0c;我们的时间复杂度是O&#xff08;N&#xff09;b最大是10的9次方&#xff0c;这时候我们一定会超时 #include <iostream> using namespace std;typedef long long LL; LL a,b,p;LL ret 1; int main() {cin >> a >> b &g…

SQL经典查询

查询不在表里的数据&#xff0c;一张学生表&#xff0c;一张学生的选课表&#xff0c;要求查出没有选课的学生&#xff1f; select students.student_name from students left join course_selection on students.student_idcourse_selection.student_id where course_selecti…

## DeepSeek写水果记忆配对手机小游戏

DeepSeek写水果记忆配对手机小游戏 提问 根据提的要求&#xff0c;让DeepSeek整理的需求&#xff0c;进行提问&#xff0c;内容如下&#xff1a; 请生成一个包含以下功能的可运行移动端水果记忆配对小游戏H5文件&#xff1a; 要求 可以重新开始游戏 可以暂停游戏 卡片里的水果…

【GoTeams】-5:引入Docker

本文目录 1. Dokcer-compose回顾下Docker知识编写docker-compose.yaml运行docker 2. 部署go服务编写dockerfile 1. Dokcer-compose 这里简单先用一下win版本的Docker&#xff0c;后期开发好了部署的时候再移植到服务器下进行docker部署。 输入命令docker-compose version 就可…

将自定义vue组件加载在Mapbox或Maplibre的marker和popup上

1. 使用场景 在开发WebGIS应用时&#xff0c;我们常需要将自定义UI组件与地图元素结合。本文介绍如何将Vue组件集成到Mapbox/Maplibre的Marker标记点和Popup弹窗中&#xff0c;实现动态交互式的地图功能。 2. 为什么需要特殊处理&#xff1f; 在常规开发中我们大多的处理是 …

GB28181视频监控流媒体平台LiveGBS如何自定义收流端口区间以便减少收流端口数或解决端口冲突问题

LiveGBS GB28181流媒体服务在接收视频的时候默认是使用30000-30249&#xff0c; webrtc流播放端口区间默认是UDP的30250-30500区间。有些网络环境不方便开放这么大的端口区间&#xff0c;下面介绍下如何修改配置这个区间。 从页面上修改这个区间&#xff0c;端口区间尽量设置大…

rabbitmq-amqp事务消息+消费失败重试机制+prefetch限流

1. 安装和配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <arti…

golang 从零单排 (一) 安装环境

1.下载安装 打开网址The Go Programming Language 直接点击下载go1.24.1.windows-amd64.msi 下载完成 直接双击下一步 下一步 安装完成 环境变量自动设置不必配置 2.验证 win r 输入cmd 打开命令行 输入go version

康谋分享 | 3DGS:革新自动驾驶仿真场景重建的关键技术

随着自动驾驶技术的迅猛发展&#xff0c;构建高保真、动态的仿真场景成为了行业的迫切需求。传统的三维重建方法在处理复杂场景时常常面临效率和精度的挑战。在此背景下&#xff0c;3D高斯点阵渲染&#xff08;3DGS&#xff09;技术应运而生&#xff0c;成为自动驾驶仿真场景重…

【够用就好008】开新坑自学esb32烧录进军物联网和嵌入式

见字如面&#xff0c;这里是AKA AIGC创意人竹相左边。 学习使用了三年的AI工具&#xff0c;现在最大的自信就是业余时间可以学习任何自己感兴趣的事&#xff0c;感觉手搓火箭也不是梦。 今天开个新坑&#xff0c;也是逐步探索想要进入的新世界。物联网&#xff08;IoT&#…