【Elasticsearch】token filter分词过滤器

以下是Elasticsearch中常见的分词过滤器(Token Filter)的详细说明,基于搜索结果中的信息整理:

1.Apostrophe

• 功能:处理文本中的撇号(apostrophe),例如将“O'Reilly”转换为“oreilly”或“o reilly”。

• 应用场景:适用于处理包含撇号的名称或术语。

2.ASCII Folding

• 功能:将非ASCII字符转换为ASCII字符。例如,将“é”转换为“e”,“ü”转换为“u”。

• 应用场景:适用于需要忽略字符变音符或特殊字符的场景。

3.CJK Bigram

• 功能:将中文、日文或韩文文本拆分为相邻的字符对(bigram)。例如,“中文”会被拆分为“中”和“文”。

• 应用场景:用于提高CJK语言的分词效果。

4.CJK Width

• 功能:将全角字符转换为半角字符,或反之。

• 应用场景:适用于需要统一字符宽度的场景。

5.Classic

• 功能:执行标准的文本清理操作,如去除标点符号等。

• 应用场景:适用于通用文本处理。

6.Common Grams

• 功能:将常见短语拆分为单独的分词。例如,“New York”会被拆分为“New”和“York”。

• 应用场景:适用于需要将常见短语作为独立分词处理的场景。

7.Conditional

• 功能:根据条件动态选择分词过滤器。

• 应用场景:适用于复杂的文本处理逻辑。

8.Decimal Digit

• 功能:提取数字分词。

• 应用场景:适用于需要提取数字的场景。

9.Delimited Payload

• 功能:将分词与特定的负载数据关联起来。

• 应用场景:适用于需要为分词添加额外数据的场景。

10.Dictionary Decompounder

• 功能:将复合词拆分为其组成部分。

• 应用场景:适用于处理德语等语言中的复合词。

11.Edge N-gram

• 功能:生成文本的前缀分词。例如,“running”会生成“r”、“ru”、“run”等。

• 应用场景:适用于自动补全功能。

12.Elision

• 功能:处理法语等语言中的缩写形式,如“l'”。

• 应用场景:适用于法语等需要处理缩写的语言。

13.Fingerprint

• 功能:将文本转换为统一的指纹格式,通常用于去重。

• 应用场景:适用于需要去重的场景。

14.Flatten Graph

• 功能:将图形分词结构展平为线性结构。

• 应用场景:适用于需要简化分词结构的场景。

15.Hunspell

• 功能:使用Hunspell字典进行拼写检查和词形还原。

• 应用场景:适用于需要拼写检查的语言。

16.Hyphenation Decompounder

• 功能:将带连字符的单词拆分为独立的单词。

• 应用场景:适用于处理带连字符的单词。

17.Keep Types

• 功能:保留特定类型的分词。

• 应用场景:适用于需要过滤特定类型分词的场景。

18.Keep Words

• 功能:保留指定的单词。

• 应用场景:适用于需要保留特定单词的场景。

19.Keyword Marker

• 功能:将特定单词标记为关键字,防止进一步处理。

• 应用场景:适用于需要保留特定单词原样的场景。

20.Keyword Repeat

• 功能:重复关键字分词。

• 应用场景:适用于需要重复关键字的场景。

21.KStem

• 功能:对英文单词进行词干提取。

• 应用场景:适用于英文文本处理。

22.Length

• 功能:根据长度过滤分词。

• 应用场景:适用于需要过滤短分词或长分词的场景。

23.Limit Token Count

• 功能:限制分词数量。

• 应用场景:适用于需要控制分词数量的场景。

24.Lowercase

• 功能:将所有分词转换为小写。

• 应用场景:适用于需要忽略大小写的场景。

25.MinHash

• 功能:使用MinHash算法对分词进行哈希处理。

• 应用场景:适用于需要进行相似性计算的场景。

26.Multiplexer

• 功能:将分词输出到多个流中。

• 应用场景:适用于需要将分词输出到多个处理流程的场景。

27.N-gram

• 功能:生成文本的N-gram分词。例如,“running”会生成“ru”、“un”、“ni”等。

• 应用场景:适用于需要生成N-gram的场景。

28.Normalization

• 功能:对分词进行标准化处理。

• 应用场景:适用于需要统一分词格式的场景。

29.Pattern Capture

• 功能:使用正则表达式捕获分词。

• 应用场景:适用于需要根据正则表达式提取分词的场景。

30.Pattern Replace

• 功能:使用正则表达式替换分词。

• 应用场景:适用于需要根据正则表达式修改分词的场景。

31.Phonetic

• 功能:将分词转换为音标形式。

• 应用场景:适用于需要根据发音进行匹配的场景。

32.Porter Stem

• 功能:使用Porter算法对英文单词进行词干提取。

• 应用场景:适用于英文文本处理。

33.Predicate Script

• 功能:使用脚本动态过滤分词。

• 应用场景:适用于需要动态处理分词的场景。

34.Remove Duplicates

• 功能:移除重复的分词。

• 应用场景:适用于需要去重的场景。

35.Reverse

• 功能:反转分词。

• 应用场景:适用于需要反转分词的场景。

36.Shingle

• 功能:生成短语分词。例如,“quick brown fox”会生成“quick brown”和“brown fox”。

• 应用场景:适用于需要处理短语的场景。

37.Snowball

• 功能:使用Snowball算法对多种语言进行词干提取。

• 应用场景:适用于多语言文本处理。

38.Stemmer

• 功能:对分词进行词干提取。

• 应用场景:适用于需要提取词干的场景。

39.Stemmer Override

• 功能:覆盖默认的词干提取规则。

• 应用场景:适用于需要自定义词干提取规则的场景。

40.Stop

• 功能:移除停用词(如“the”、“is”等)。

• 应用场景:适用于需要移除常见停用词的场景。

41.Synonym

• 功能:将分词替换为同义词。

• 应用场景:适用于需要扩展搜索范围的场景。

42.Synonym Graph

• 功能:将分词替换为同义词,并保留图形结构。

• 应用场景:适用于需要保留分词图形结构的场景。

43.Trim

• 功能:去除分词首尾的空白字符。

• 应用场景:适用于需要清理分词的场景。

44.Truncate

• 功能:截断分词。

• 应用场景:适用于需要限制分词长度的场景。

45.Unique

• 功能:移除重复的分词。

• 应用场景:适用于需要去重的场景。

46.Uppercase

• 功能:将所有分词转换为大写。

• 应用场景:适用于需要将分词转换为大写的场景。

47.Word Delimiter

• 功能:将单词拆分为子单词。例如,“hot-spot”会拆分为“hot”和“spot”。

• 应用场景:适用于需要拆分单词的场景。

48.Word Delimiter Graph

• 功能:与`Word Delimiter`类似,但支持更复杂的图形结构,能够更好地处理多语言和复杂分词场景。

• 应用场景:适用于需要处理复杂分词规则的场景,例如多语言文本或包含特殊字符的文本。

49.其他补充说明

除了上述列出的分词过滤器,Elasticsearch还在不断更新和扩展其分析工具集。以下是一些可能在未来版本或特定插件中出现的分词过滤器类型:

50.Custom Token Filter(自定义分词过滤器)

• 功能:允许用户根据自己的需求编写自定义的分词过滤器逻辑。

• 应用场景:适用于需要实现特定文本处理逻辑的场景,例如根据特定规则对分词进行修改或过滤。

51.Language-Specific Filters(特定语言的分词过滤器)

• 功能:针对特定语言的语法和词汇特性设计的分词过滤器,例如德语的`GermanNormalization`或俄语的`RussianNormalization`。

• 应用场景:适用于需要针对特定语言进行优化的场景。

52.Machine Learning Filters(机器学习分词过滤器)

• 功能:利用机器学习模型对分词进行处理,例如自动识别和纠正拼写错误。

• 应用场景:适用于需要利用机器学习技术提升文本处理能力的场景。

53.Hybrid Filters(混合分词过滤器)

• 功能:结合多种分词过滤器的特性,例如同时进行词干提取和同义词替换。

• 应用场景:适用于需要综合多种文本处理技术的场景。

总结

Elasticsearch提供了丰富的分词过滤器,每种过滤器都有其独特的功能和适用场景。通过合理组合这些分词过滤器,可以实现复杂的文本分析需求,从而提升搜索的准确性和灵活性。在实际应用中,建议根据具体的业务需求选择合适的分词过滤器,并进行充分的测试以确保其效果。

如果你需要更详细的配置示例或具体分词过滤器的使用方法,可以参考Elasticsearch的官方文档,或者在Stack Overflow等社区中查找相关问题和解决方案。

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

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

相关文章

深度学习框架探秘|TensorFlow vs PyTorch:AI 框架的巅峰对决

在深度学习框架中,TensorFlow 和 PyTorch 无疑是两大明星框架。前面两篇文章我们分别介绍了 TensorFlow(点击查看) 和 PyTorch(点击查看)。它们引领着 AI 开发的潮流,吸引着无数开发者投身其中。但这两大框…

企语企业管理系iFair(F23.2_a0)在Debian操作系统中的安装

起因:在安装了F24.8版本后,发现生产用环境和测试、开发用环境还是分开的好。 旧版的用来实验、测试,新版的一步一步小心的配置、使用是比较稳妥的操作。因此,决定在KVM虚拟机上搭建一个F23.2版本的企语系统。 一、 存在的问题 而…

Redis 数据类型 Hash 哈希

在 Redis 中,哈希类型是指值本⾝⼜是⼀个键值对结构,形如 key "key",value { { field1, value1 }, ..., {fieldN, valueN } },Redis String 和 Hash 类型⼆者的关系可以⽤下图来表⽰。 Hash 数据类型的特点 键值对集合…

Elasticsearch:15 年来致力于索引一切,找到重要内容

作者:来自 Elastic Shay Banon 及 Philipp Krenn Elasticsearch 刚刚 15 岁了!回顾过去 15 年的索引和搜索,并展望未来 15 年的相关内容。 Elasticsearch 刚刚成立 15 周年。一切始于 2010 年 2 月的一篇公告博客文章(带有标志性的…

EF Core中实现值对象

目录 值对象优点 值对象的需求 值类型的实现 值类型GEO的实现 值类型MultilingualString的实现 案例:构建表达式树,简化值对象的比较 值对象优点 把有紧密关系的属性打包为一个类型把领域知识放到类的定义中 class shangjia {long id;string nam…

ETHEREAL:使用压缩Tsetlin机器实现能效高吞吐量推理

论文标题 英文标题:ETHEREAL: Energy-efficient and High-throughput Inference using Compressed Tsetlin Machine 中文标题:ETHEREAL:使用压缩Tsetlin机器实现能效高吞吐量推理 作者信息 Shengyu Duan, Newcastle University, Newcastle…

PyCharm 批量替换

选择替换的内容 1. 打开全局替换窗口 有两种方式可以打开全局替换窗口: 快捷键方式: 在 Windows 或 Linux 系统下,按下 Ctrl Shift R。在 Mac 系统下,按下 Command Shift R。菜单操作方式:点击菜单栏中的 Edit&…

mars3d接入到uniapp的时候ios上所有地图的瓦片都无法加载解决方案

用的是【Mars3d】官网的uniapp的仓库,安卓没有问题,但是ios的不行 相关链接 mars3d-uni-app: uni-app技术栈下的Mars3D项目模板 解决方案:感觉所有图片请求全被拦截了 uniapp的ios内核不允许跨域,需要先把瓦片下载后转base64&…

SpringBoot速成(十)更新用户信息P11-P12

1.代码展示: 1.RequestBody 是 Spring 框架中用于处理 HTTP 请求体的注解,通常用于控制器(Controller)层的方法参数中。当客户端发送一个包含 JSON 或 XML 数据的 HTTP 请求时,可以使用 RequestBody 将这些数据绑定到一…

3.3.3 VO-O语法- 语法算子(二)

循环遍历 由于VO语言是面向数据集的,其所有隐含的语义中都已经带有了遍历并计算的数据逻辑。因此,VO语言只提供了一种支持循环语法的算子--Loop算子。 Loop算子 Loop算子是一个容器算子,其可以实现对其内部子流程的循环迭代运行。但Loop算…

java后端开发day13--面向对象综合练习

(以下内容全部来自上述课程) 注意:先有javabean,才能创建对象。 1.文字版格斗游戏 格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候&#…

RocketMQ和Kafka如何实现顺序写入和顺序消费?

0 前言 先说明kafka,顺序写入和消费是Kafka的重要特性,但需要正确的配置和使用方式才能保证。本文需要解释清楚Kafka如何通过分区来实现顺序性,以及生产者和消费者应该如何配合。   首先,顺序写入。Kafka的消息是按分区追加写入…

DeepSeek系统崩溃 | 极验服务如何为爆火应用筑起安全防线?

引言 极验服务让您的产品站在风口之时,不必担心爆红是灾难的开始,而是期待其成为驱动持续创新的全新起点。 01现象级狂欢背后,你的业务安全防线抗得住吗? “近期DeepSeek线上服务受到大规模恶意攻击,注册可能繁忙&am…

【故障处理】- RMAN-06593: platform name ‘Linux x86 64-bitElapsed: 00:00:00.00‘

【故障处理】- RMAN-06593: platform name Linux x86 64-bitElapsed: 00:00:00.00 一、概述二、报错原因三、解决方法 一、概述 使用xtts迁移,在目标端进行恢复时,遇到RMAN-06593: platform name Linux x86 64-bitElapsed: 00:00:00.00’报错。 二、报错…

日志结构化处理:PO对象toString日志转JSON工具

日志结构化处理:PO对象toString日志转JSON工具 1. 解决的问题2. 下载地址 在Java项目中,PO(Plain Old Java Object)对象遍布各个角落,且常常伴随着大量的日志记录需求。传统的做法是通过toString方法直接打印这些对象&…

【云安全】云原生- K8S API Server 未授权访问

API Server 是 Kubernetes 集群的核心管理接口,所有资源请求和操作都通过 kube-apiserver 提供的 API 进行处理。默认情况下,API Server 会监听两个端口:8080 和 6443。如果配置不当,可能会导致未授权访问的安全风险。 8080 端口…

Ansible批量配置服务器免密登录步骤详解

一、准备工作 192.168.85.138 安装ansible,计划配置到139的免密 192.168.85.139 待配置免密 1. 生成SSH密钥对 在Ansible控制节点生成密钥对,用于后续免密认证: ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa 全部回车默认,无…

游戏引擎学习第99天

仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板:制作一些光场(Light Field) 当前的目标是为游戏添加光照系统,并已完成了法线映射(normal maps)的管道,但还没有创建可以供这些正常映射采样的光场。为了继续推进&…

纪念日倒数日项目的实现-【纪念时刻-时光集】

纪念日/倒数日项目的实现## 一个练手的小项目,uniappnodemysql七牛云。 在如今快节奏的生活里,大家都忙忙碌碌,那些具有特殊意义的日子一不小心就容易被遗忘。今天,想给各位分享一个“纪念日”项目。 【纪念时刻-时光集】 一…

yanshee机器人初次使用说明(备注)-PyCharm

准备 需要: 1,(优必选)yanshee机器人Yanshee 开发者说明 2,手机-联网简单操控 / HDMI线与显示器和键鼠标-图形化开发环境 / 笔记本(VNC-内置图形化开发环境/PyCharm等平台)。 3,P…