【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 初阶

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web认证机制 Cookie、Token、Session、JWT、OAuth2 解析

标题 一、Cookie二、Session三、Token四、JWTSSO&#xff08;单点登录&#xff09; 五、OAuth2如何设计权限系统区别总结 Cookie、Token、Session 和 JWT 都是在 Web 开发中常用的身份验证和授权技术&#xff0c;它们各有优缺点&#xff0c;适用于不同的场景。 Cookie 简单易用…

GEE遥感云大数据在灾害、水体与湿地领域典型案例实践:洪涝灾害、水体质量、河道轮廓、地下水变化监测;洪水敏感性和风险模拟;红树林遥感制图等

以Earth Engine&#xff08;GEE&#xff09;、PIE-Engine为代表全球尺度地球科学数据&#xff08;尤其是卫星遥感数据&#xff09;在线可视化计算和分析云平台应用越来越广泛。GEE平台存储和同步遥感领域目前常用的MODIS、Landsat和Sentinel等卫星影像、气候与天气、地球物理等…

安装一键式重置密码插件(Linux)-CloudResetPwdAgent

为了保证使用镜像创建的裸金属服务器可以实现一键式密码重置功能&#xff0c;建议您在制作镜像时安装重置密码插件“CloudResetPwdAgent”。 前提条件 需保证虚拟机根目录可写入&#xff0c;且剩余空间大于600MB。 1.下载插件包 华为云已提供下载包连接 在PC机里下载好软件…

力扣-Mysql-3328-查找每个州的城市 II(中等)

一、题目来源 3328. 查找每个州的城市 II - 力扣&#xff08;LeetCode&#xff09; 二、数据表结构 表&#xff1a;cities ---------------------- | Column Name | Type | ---------------------- | state | varchar | | city | varchar | ----------------…

深度学习神经网络创新点方向

一、引言 深度学习神经网络在过去几十年里取得了令人瞩目的成就&#xff0c;从图像识别、语音处理到自然语言理解等众多领域都有广泛应用。然而&#xff0c;随着数据量的不断增长和应用场景的日益复杂&#xff0c;对神经网络的创新需求也愈发迫切。本文将探讨深度学习神经网络…

SpringBoot 3.3.5 试用CRaC,启动速度提升3到10倍

文章目录 一 CRaC是什么二 CRaC的原理三 CRaC 的应用场景四 支持版本五 实践 今天和小伙伴们来聊一个稍微新一点的技术话题—CRaC。 CRaC&#xff08;Coordinated Restore at Checkpoint&#xff0c;检查点协调恢复&#xff09;是一个 OpenJDK 项目&#xff0c;旨在解决 Java 应…

大模型本地部署:Ollama+MaxKB 部署本地知识库

前言 本文我们介绍另外一种部署本地知识库的方案&#xff1a; Ollama MaxKB 相对来说&#xff0c;容易安装且功能较完善&#xff0c;30 分钟内即可上线基于本地大模型的知识库问答系统&#xff0c;并嵌入到第三方业务系统中。 缺点是如果你的电脑配置不高&#xff0c;问题…

Nuxt.js 应用中的 schema:beforeWrite 事件钩子详解

title: Nuxt.js 应用中的 schema:beforeWrite 事件钩子详解 date: 2024/11/14 updated: 2024/11/14 author: cmdragon excerpt: schema:beforeWrite 钩子是 Vite 提供的一个功能强大的生命周期钩子,允许开发者在 JSON Schema 被写入之前执行自定义操作。利用这个钩子,您可以…

Scrapy爬取heima论坛所有页面内容并保存到数据库中

前期准备&#xff1a; Scrapy入门_win10安装scrapy-CSDN博客 新建 Scrapy项目 scrapy startproject mySpider03 # 项目名为mySpider03 进入到spiders目录 cd mySpider03/mySpider03/spiders 创建爬虫 scrapy genspider heima bbs.itheima.com # 爬虫名为heima &#…

MacBook 下载vscode不能被解压及打开的解决方案

mac 下载vscode不能被解压解决方案如下 1.下载全能解压 进行解压 解压完如果提示 已损坏&#xff0c;无法打开。 您应该将它移到废纸篓 2.允许“任何来源”开启 开启终端输入 sudo spctl --master-disable回车 3. 扩展文件属性 先输入 sudo xattr -r -d com.apple.quaran…

【AI声音克隆整合包及教程】第二代GPT-SoVITS V2:技术、应用与伦理思考

一、引言 在当今科技迅速发展的时代&#xff0c;声音克隆技术成为人工智能领域的一个备受瞩目的分支。GPT-SoVITS V2作为一种声音克隆工具&#xff0c;正逐渐进入人们的视野&#xff0c;它在多个领域展现出巨大的潜力&#xff0c;同时也引发了一系列值得深入探讨的问题。本文旨…

DAY113代码审计-PHPTP框架微P系统漏审项目等

一、环境安装 导入数据 Debug 版本信息收集 一、不安全写法的sql注入&#xff08;拼接写法绕过预编译机制&#xff09; 1、Good.php的不安全写法 2、查找可以参数 3、找路由关系 application/index/controller/Goods.php http://172.19.1.236:8833/index.php/index/goods/aj…

35.3K+ Star!PhotoPrism:一款基于AI的开源照片管理工具

PhotoPrism 简介 PhotoPrism[1] 是一个为去中心化网络设计的AI照片应用,它利用最新技术自动标记和查找图片,实现自动图像分类与本地化部署,你可以在家中、私有服务器或云端运行它。 项目特点 主要特点 浏览所有照片和视频,无需担心RAW转换、重复项或视频格式。 使用强大的…

【CUDA】了解GPU架构

目录 一、初步认识 二、Fermi架构 三、Kepler 架构 3.1 动态并行 3.2 Hyper-Q 一、初步认识 SM&#xff08;Streaming Multiprocessors&#xff09;是GPU架构中非常重要的部分&#xff0c;GPU硬件的并行性就是由SM决定的。以Fermi架构为例&#xff0c;其包含以下主要组成…

鸿蒙HarmonyOS 网络请求获取数据Http

注意的是;要为接口返回值指定类型 &#xff0c;以及定义接口数据类型 index.ets import { http } from kit.NetworkKit;interface createAtType {date: number,}interface dataListType {createAt: createAtType;imgUrl: }Component export default struct TabBar {State dat…

Windows VSCode .NET CORE WebAPI Debug配置

1.安装C#插件 全名C# for Visual Studio Code&#xff0c;选择微软的 2. 安装C# Dev Kit插件 全名C# Dev Kit for Visual Studio Code&#xff0c;同样是选择微软的 3.安装Debugger for Unity 4.配置launch.json 文件 {"version": "0.2.0","config…

Odoo:免费开源的流程制造行业ERP管理系统

概述 聚焦流程制造连续性生产的特性&#xff0c;提供集成PLMERPMESBI的一体化解决方案&#xff0c;涵盖计划、生产、质量、配方、供销、库存、成本、设备、资金管理等业务领域的整体性解决方案 行业的最新洞察&行业典型痛点 一、生产过程需要精细化控制 需要在各种制约…

ERP管理系统(源码+文档+部署+讲解)

本文将深入解析“ERP管理系统”的项目&#xff0c;探究其架构、功能以及技术栈&#xff0c;并分享获取完整源码的途径。 系统概述 ERP管理系统是一款全面的资源规划软件&#xff0c;旨在通过集成各种业务流程和功能模块来提高管理效率和决策质量。该系统覆盖了从基础设置、供…

mysql每日一题(上升的温度,date数据的计算)

日期之间的运算 日期类型的加法运算 data_add(now_data,interval 1 month) select date_add(now(), interval 1 day); -- 加1天 select date_add(now(), interval 1 hour); -- 加1小时 select date_add(now(), interval 1 minute); -- 加1分钟 select date_add(now(), inter…

CTF攻防世界小白刷题自学笔记13

1.fileinclude,难度&#xff1a;1,方向&#xff1a;Web 题目来源:宜兴网信办 题目描述:无 给一下题目链接&#xff1a;攻防世界Web方向新手模式第16题。 打开一看给了很多提示&#xff0c;什么language在index.php的第九行&#xff0c;flag在flag.php中&#xff0c;但事情显…