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

【Elasticsearch】分词器概述

Elasticsearch 分词与神经网络分词的区别

Elasticsearch 的分词过程产生的是优化用于搜索和检索的语言学分词。这与机器学习和自然语言处理中的神经分词不同。神经分词器将字符串转换为更小的子词分词,这些分词被编码为向量,供神经网络使用。Elasticsearch 没有内置的神经分词器。

分词器接收一个字符流,将其分解为单独的分词(通常是单个单词),并输出一个分词流。例如,`whitespace`分词器在遇到任何空白字符时将文本分解为分词。它会将文本`"Quick brown fox!"`转换为术语`[Quick, brown, fox!]`。

分词器还负责记录以下内容:

• 每个术语的顺序或位置(用于短语和词近似查询)。

• 每个术语所代表的原始单词的开始和结束字符偏移量(用于突出显示搜索片段)。

• 分词类型,是对每个产生的术语的分类,例如`<ALPHANUM>`、`<HANGUL>`或`<NUM>`。更简单的分析器仅产生`word`分词类型。

Elasticsearch 提供了许多内置的分词器,可以用来构建自定义分析器。

以单词为导向的分词器

以下分词器通常用于将全文分解为单个单词:

标准分词器

`standard`分词器根据 Unicode 文本分段算法定义的单词边界将文本划分为术语。它会移除大部分标点符号。对于大多数语言来说,这是最佳选择。

字母分词器

`letter`分词器在遇到非字母字符时将文本划分为术语。

小写分词器

`lowercase`分词器与`letter`分词器类似,它在遇到非字母字符时将文本划分为术语,但它还会将所有术语转换为小写。

空白分词器

`whitespace`分词器在遇到任何空白字符时将文本划分为术语。

UAX URL 邮件分词器

`uax_url_email`分词器与`standard`分词器类似,但它会将 URL 和电子邮件地址识别为单个术语。

经典分词器

`classic`分词器是基于英语语法的分词器。

泰语分词器

`thai`分词器将泰语文本分割成单词。

部分单词分词器

这些分词器将文本或单词分解为小片段,用于部分单词匹配:

N-Gram 分词器

`ngram`分词器在遇到指定字符列表(例如空白字符或标点符号)时将文本分解为单词,然后返回每个单词的 n-gram:一个连续字母的滑动窗口,例如`quick`→`[qu, ui, ic, ck]`。

边缘 N-Gram 分词器

`edge_ngram`分词器在遇到指定字符列表(例如空白字符或标点符号)时将文本分解为单词,然后返回每个单词的 n-gram,这些 n-gram 锚定在单词的开头,例如`quick`→`[q, qu, qui, quic, quick]`。

结构化文本分词器

以下分词器通常用于结构化文本(如标识符、电子邮件地址、邮政编码和路径),而不是用于全文:

关键词分词器

`keyword`分词器是一个“无操作”分词器,它接受给定的任何文本,并将完全相同的文本作为单个术语输出。它可以与`lowercase`等分词过滤器结合使用,以标准化分析术语。

模式分词器

`pattern`分词器使用正则表达式来分割文本,当匹配到单词分隔符时,或者将匹配到的文本捕获为术语。

简单模式分词器

`simple_pattern`分词器使用正则表达式捕获匹配的文本作为术语。它使用受限的正则表达式功能子集,通常比`pattern`分词器更快。

字符组分词器

`char_group`分词器可以通过字符集进行配置,以分割字符,这通常比运行正则表达式更高效。

简单模式分割分词器

`simple_pattern_split`分词器使用与`simple_pattern`分词器相同的受限正则表达式子集,但它在匹配处分割输入,而不是将匹配项作为术语返回。

路径分词器

`path_hierarchy`分词器处理类似文件系统路径的分层值,按路径分隔符分割,并为树中的每个组件生成一个术语,例如`/foo/bar/baz`→`[/foo, /foo/bar, /foo/bar/baz]`。

 

相关文章:

  • 嵌入式LINUX驱动开发入门之hello驱动(基于IMX6ULL-MINI开发板)
  • 算法-计算字符的最短距离
  • 计算机毕业设计PySpark+hive招聘推荐系统 职位用户画像推荐系统 招聘数据分析 招聘爬虫 数据仓库 Django Vue.js Hadoop
  • 基于微型5G网关的石化厂区巡检机器人应用
  • -bash:/usr/bin/rm: Argument list too long 解决办法
  • Swagger2 Knife4jConfig 配置,父子项目swagger扫描多个子模块中的Controller生成接口文档:
  • sward简介与安装
  • 小厂面(又是依托)
  • AWK系统学习指南:从文本处理到数据分析的终极武器 实战
  • 动态DNS神器nip.io使用指南:快速实现域名与IP的动态映射--告别配置本地hosts
  • Go 语言里中的堆与栈
  • LabVIEW用户界面(UI)和用户体验(UX)设计
  • 如何本地部署DeepSeek
  • HTML之JavaScript运算符
  • macOS部署DeepSeek-r1
  • oracle使用动态sql将多层级组织展平
  • C++自研游戏引擎-碰撞检测组件-八叉树AABB检测算法实现
  • 企业文件安全:零信任架构下的文件访问控制
  • 深度学习|表示学习|Instance Normalization 全面总结|26
  • 网络安全架构师怎么考 网络安全 架构
  • 网站案例/矿产网站建设价格
  • 点个赞科技 网站制作/腾讯会议价格
  • 电子商务网站建设/seo收录查询工具
  • 兰州网新公司/厦门seo排名优化方式
  • 国外jquery特效网站/提升神马seo关键词自然排名
  • 建设直销个人网站/广州最新疫情通报