【2024软考架构案例题】你知道 Es 的几种分词器吗?Standard、Simple、WhiteSpace、Keyword 四种分词器你知道吗?
👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主
⛪️ 个人社区:个人社区
💞 个人主页:个人主页
🙉 专栏地址: ✅ Java 中级
🙉八股文专题:剑指大厂,手撕 Java 八股文

文章目录
- 1. 什么是 Standard 分词器?
- 2. 什么是 Simple 分词器?
- 3. 什么是 WhiteSpace 分词器?
- 4. 什么是 Keyword 分词器?
1. 什么是 Standard 分词器?
Standard 分词器(Standard Tokenizer)是 Elasticsearch 和 Lucene 中最常用的分词器之一。它主要用于处理自然语言文本,能够识别单词、数字、电子邮件地址、URL 等,并将它们分割成单独的词元(tokens)。Standard 分词器遵循 Unicode 文本分段算法(Unicode Text Segmentation Algorithm),能够处理多种语言的文本。
特点:
- 识别单词:能够识别常见的单词边界。
- 处理标点符号:会忽略大多数标点符号,但保留电子邮件地址和 URL。
- 处理数字:能够识别并保留数字。
- 处理特殊字符:能够处理一些特殊字符,如连字符和撇号。
示例:
POST _analyze
{"analyzer": "standard","text": "Elasticsearch is a powerful search engine. Visit https://www.elastic.co for more information."
}
输出:
{"tokens": [{ "token": "elasticsearch", "start_offset": 0, "end_offset": 11, "type": "<ALPHANUM>", "position": 0 },{ "token": "is", "start_offset": 12, "end_offset": 14, "type": "<ALPHANUM>", "position": 1 },{ "token": "a", "start_offset": 15, "end_offset": 16, "type": "<ALPHANUM>", "position": 2 },{ "token": "powerful", "start_offset": 17, "end_offset": 25, "type": "<ALPHANUM>", "position": 3 },{ "token": "search", "start_offset": 26, "end_offset": 32, "type": "<ALPHANUM>", "position": 4 },{ "token": "engine", "start_offset": 33, "end_offset": 39, "type": "<ALPHANUM>", "position": 5 },{ "token": "visit", "start_offset": 41, "end_offset": 46, "type": "<ALPHANUM>", "position": 6 },{ "token": "https", "start_offset": 47, "end_offset": 52, "type": "<ALPHANUM>", "position": 7 },{ "token": "www.elastic.co", "start_offset": 53, "end_offset": 68, "type": "<ALPHANUM>", "position": 8 },{ "token": "for", "start_offset": 70, "end_offset": 73, "type": "<ALPHANUM>", "position": 9 },{ "token": "more", "start_offset": 74, "end_offset": 78, "type": "<ALPHANUM>", "position": 10 },{ "token": "information", "start_offset": 79, "end_offset": 90, "type": "<ALPHANUM>", "position": 11 }]
}
2. 什么是 Simple 分词器?
Simple 分词器(Simple Tokenizer)是一个简单的分词器,它将文本按非字母字符(如空格、标点符号等)分割成词元。它只保留字母字符,并将所有字母转换为小写。
特点:
- 简单分割:只按非字母字符分割。
- 小写转换:将所有字母转换为小写。
- 不处理数字:数字被视为非字母字符,会被分割掉。
示例:
POST _analyze
{"tokenizer": "simple_pattern","text": "Elasticsearch is a powerful search engine. Visit www.elastic.co for more information."
}
输出:
{"tokens": [{ "token": "elasticsearch", "start_offset": 0, "end_offset": 11, "type": "word", "position": 0 },{ "token": "is", "start_offset": 12, "end_offset": 14, "type": "word", "position": 1 },{ "token": "a", "start_offset": 15, "end_offset": 16, "type": "word", "position": 2 },{ "token": "powerful", "start_offset": 17, "end_offset": 25, "type": "word", "position": 3 },{ "token": "search", "start_offset": 26, "end_offset": 32, "type": "word", "position": 4 },{ "token": "engine", "start_offset": 33, "end_offset": 39, "type": "word", "position": 5 },{ "token": "visit", "start_offset": 41, "end_offset": 46, "type": "word", "position": 6 },{ "token": "wwwelasticco", "start_offset": 50, "end_offset": 62, "type": "word", "position": 7 },{ "token": "for", "start_offset": 64, "end_offset": 67, "type": "word", "position": 8 },{ "token": "more", "start_offset": 68, "end_offset": 72, "type": "word", "position": 9 },{ "token": "information", "start_offset": 73, "end_offset": 84, "type": "word", "position": 10 }]
}
3. 什么是 WhiteSpace 分词器?
WhiteSpace 分词器(Whitespace Tokenizer)是最简单的分词器之一,它仅按空格分割文本,不处理其他标点符号或特殊字符。
特点:
- 按空格分割:只按空格分割文本。
- 保留所有字符:不忽略任何字符,包括标点符号和数字。
示例:
POST _analyze
{"tokenizer": "whitespace","text": "Elasticsearch is a powerful search engine. Visit www.elastic.co for more information."
}
输出:
{"tokens": [{ "token": "Elasticsearch", "start_offset": 0, "end_offset": 11, "type": "word", "position": 0 },{ "token": "is", "start_offset": 12, "end_offset": 14, "type": "word", "position": 1 },{ "token": "a", "start_offset": 15, "end_offset": 16, "type": "word", "position": 2 },{ "token": "powerful", "start_offset": 17, "end_offset": 25, "type": "word", "position": 3 },{ "token": "search", "start_offset": 26, "end_offset": 32, "type": "word", "position": 4 },{ "token": "engine.", "start_offset": 33, "end_offset": 40, "type": "word", "position": 5 },{ "token": "Visit", "start_offset": 41, "end_offset": 46, "type": "word", "position": 6 },{ "token": "www.elastic.co", "start_offset": 47, "end_offset": 62, "type": "word", "position": 7 },{ "token": "for", "start_offset": 63, "end_offset": 66, "type": "word", "position": 8 },{ "token": "more", "start_offset": 67, "end_offset": 71, "type": "word", "position": 9 },{ "token": "information.", "start_offset": 72, "end_offset": 85, "type": "word", "position": 10 }]
}
4. 什么是 Keyword 分词器?
Keyword 分词器(Keyword Tokenizer)是一个不分词的分词器,它将整个输入文本作为一个单一的词元处理。这意味着输入文本不会被分割成多个词元。
特点:
- 不分词:将整个输入文本作为一个词元处理。
- 保留原样:不进行任何转换或修改。
示例:
POST _analyze
{"tokenizer": "keyword","text": "Elasticsearch is a powerful search engine. Visit www.elastic.co for more information."
}
输出:
{"tokens": [{ "token": "Elasticsearch is a powerful search engine. Visit www.elastic.co for more information.", "start_offset": 0, "end_offset": 85, "type": "word", "position": 0 }]
}
- Standard 分词器:适用于自然语言文本,能够识别单词、数字、电子邮件地址和 URL。
- Simple 分词器:简单地按非字母字符分割文本,并将所有字母转换为小写。
- WhiteSpace 分词器:仅按空格分割文本,保留所有字符。
- Keyword 分词器:将整个输入文本作为一个单一的词元处理,不分词。
这些分词器各有特点,适用于不同的场景。选择合适的分词器可以提高搜索和索引的效率和准确性。
精彩专栏推荐订阅:在下方专栏👇🏻
✅ 2023年华为OD机试真题(A卷&B卷)+ 面试指导
✅ 精选100套 Java 项目案例
✅ 面试需要避开的坑(活动)
✅ 你找不到的核心代码
✅ 带你手撕 Spring
✅ Java 初阶

相关文章:
【2024软考架构案例题】你知道 Es 的几种分词器吗?Standard、Simple、WhiteSpace、Keyword 四种分词器你知道吗?
👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…...
Elman 神经网络 MATLAB 函数详解
Elman 神经网络 MATLAB 函数详解 一、引言 Elman 神经网络是一种在时间序列分析和动态系统建模领域广泛应用的递归神经网络(RNN)。MATLAB 提供了一系列强大的函数来创建、训练和应用 Elman 神经网络,使得用户能够方便地利用其处理具有时间序…...
vue el-date-picker 日期选择器禁用失效问题
当value-format"yyyy-MM-dd"的格式不要改为"yyyyMMdd",否则会导致日期选择器禁用失效问题,因为该组件默认的格式就是yyyy-MM-dd。 <el-col v-for"(item, index) in formData" :key"index" ><el-date-…...
搭建Python2和Python3虚拟环境
搭建Python3虚拟环境 1. 更新pip2. 搭建Python3虚拟环境第一步:安装python虚拟化工具第二步: 创建虚拟环境 3. 搭建Python2虚拟环境第一步:安装虚拟环境模块第二步:创建虚拟环境 4. workon命令管理虚拟机第一步:安装扩…...
【HarmonyOS NEXT】一次开发多端部署(以轮播图、Tab栏、列表为例,配合栅格布局与媒体查询,进行 UI 的一多开发)
关键词:一多、响应式、媒体查询、栅格布局、断点、UI 随着设备形态的逐渐增多,应用界面适配也面临着很大问题,在以往的安卓应用开发过程中,往往需要重新开发一套适用于大屏展示的应用,耗时又耗力,而鸿蒙提供…...
ubontu--cuDNN安装
1. 下载 cuDNN https://developer.nvidia.com/cudnn 2. 拷贝到服务器/home/<username>文件夹下 解压缩到当前文件夹: tar -xvf cudnn-linux-x86_64-9.5.1.17_cuda11-archive.tar.xz复制头文件和库文件到cuda安装目录/usr/local/cuda/ sudo cp /home/usern…...
高项 - 项目范围管理
个人总结,仅供参考,欢迎加好友一起讨论 博文更新参考时间点:2024-12 高项 - 章节与知识点汇总:点击跳转 文章目录 高项 - 项目范围管理范围管理ITO规划监控 管理基础产品范围与项目范围管理新实践 5大过程组与范围管理过程概述裁…...
如何获取PostgreSQL慢查询?从小白到高手的实战指南
数据库优化是性能调优的核心,而慢查询则是性能瓶颈的罪魁祸首。如何找到慢查询并优化它们,是每个开发者和DBA都必须掌握的技能。 今天,我们就来聊聊如何在PostgreSQL中快速获取慢查询日志,并结合不同场景进行分析优化。本文风格参…...
golang分布式缓存项目 Day4 一致性哈希
注:该项目原作者:https://geektutu.com/post/geecache-day1.html。本文旨在记录本人做该项目时的一些疑惑解答以及部分的测试样例以便于本人复习 为什么使用一致性哈希 我该访问谁 对于分布式缓存来说,当一个节点接收到请求,如…...
ARM 汇编指令
blr指令的基本概念和用途 在 ARM64 汇编中,blr是 “Branch with Link to Register” 的缩写。它是一种分支指令,主要用于跳转到一个由寄存器指定的地址,并将返回地址保存到链接寄存器(Link Register,LR)中。…...
打造个性化体验:在Axure中创建你的专属组件库
打造个性化体验:在Axure中创建你的专属组件库 在数字产品设计的浪潮中,效率和一致性是设计团队追求的两大圣杯。 随着项目的不断扩展,重复性的工作逐渐增多,设计师们开始寻找能够提高工作效率、保持设计一致性的解决方案。 而 …...
如何用WordPress和Shopify提升SEO表现?
选择合适的建站程序对于SEO优化非常重要。目前,WordPress和Shopify是两种备受推崇的建站平台,各有优势。 WordPress最大的优点是灵活性。它支持大量SEO插件,帮助你调整元标签、生成站点地图、优化内容结构等。这些功能让你能够轻松地提升网站…...
不泄密的安全远程控制软件需要哪些技术
在数字化浪潮中,远程控制软件已不再是简单的辅助工具,而是成为企业运作和日常工作中不可或缺的一部分。随着远程办公模式的广泛采纳,这些软件提供了一种既安全又高效的途径来管理和访问远端系统。无论是在家办公、技术支持还是远程教育&#…...
rust高级特征
文章目录 不安全的rust解引用裸指针裸指针与引用和智能指针的区别裸指针使用解引用运算符 *,这需要一个 unsafe 块调用不安全函数或方法在不安全的代码之上构建一个安全的抽象层 使用 extern 函数调用外部代码rust调用C语言函数rust接口被C语言程序调用 访问或修改可…...
STM32F407简单驱动步进电机(标准库)
配置 单片机型号:STM32F104ZGT6 步进电机:YK28HB40-01A 驱动器:YKD2204M-Plus 接线方式: pu:接对应的产生PWM的引脚,这里接PF9,对应TIM14_CH1通道! pu-:接单片机的G…...
使用热冻结数据层生命周期优化在 Elastic Cloud 中存储日志的成本
作者:来自 Elastic Jonathan Simon 收集数据对于可观察性和安全性至关重要,而确保数据能够快速搜索且获得低延迟结果对于有效管理和保护应用程序和基础设施至关重要。但是,存储所有这些数据会产生持续的存储成本,这为节省成本创造…...
LeetCode131. 分割回文串(2024冬季每日一题 4)
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1: 输入:s “aab” 输出:[[“a”,“a”,“b”],[“aa”,“b”]] 示例 2: 输入:s “a…...
万字长文解读深度学习——训练(DeepSpeed、Accelerate)、优化(蒸馏、剪枝、量化)、部署细节
🌺历史文章列表🌺 深度学习——优化算法、激活函数、归一化、正则化深度学习——权重初始化、评估指标、梯度消失和梯度爆炸深度学习——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法概要汇总万字长文解读…...
STM32—独立看门狗(IWDG)和窗口看门狗(WWDG)
概述: WDG(Watchdog) 看门狗,看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能计时复位程序,避免程序陷入长时间的罢工状态,保证系…...
ks8 本地化部署 F5-TTS
huggingface上有一个demo可以打开就能玩 https://huggingface.co/spaces/mrfakename/E2-F5-TTS 上传了一段懂王的演讲片段,然后在 generate text框内填了点古诗词,生成后这语气这效果,离真懂王就差一个手风琴了。 F5-TTS 项目地址…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
