当前位置: 首页 > article >正文

【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.kler.cn/a/549791.html

相关文章:

  • linux-shell脚本
  • 可观测性面试指南:常见问题与最佳实践
  • 【鱼眼镜头12】Scaramuzza的鱼眼相机模型实操,不依赖于具体的相机几何结构,直接从图像数据出发,因此更具灵活性。
  • Docker 常用命令基础详解(二)
  • 【经验记录】在windows电脑上使用Docker-Desktop部署searXNG搜索引擎
  • 利用亚马逊云科技RDS for SQL Server配置向量数据存储
  • 鸿蒙开发-自定义弹框用法
  • 【大模型系列】Windows系统上运行大语言模型方式
  • 【硬核对比】C语言 vs MATLAB:从内存管理到矩阵运算的降维打击
  • 【已解决】TypeError: AsyncConnectionPool.__init__(), new install bug, httpx==0.24.1
  • 【PYTORCH】官方的turoria实现中英文翻译
  • 电脑端调用摄像头拍照:从基础到实现
  • 力扣动态规划-32【算法学习day.126】
  • 第1章大型互联网公司的基础架构——1.1 单机房的内部架构
  • 领域驱动设计叕创新,平安保险申请DDD专利
  • 回顾Golang的Channel与Select第一篇
  • Docker-常见命令
  • android 源码切换分支
  • 升级 SpringBoot3 全项目讲解 — 别再使用 Optional 了,请使用 Jspecify 来替代它
  • 【Axure教程】数字滚动效果