分词器参考
编辑分词器参考编辑
分词器 接收字符流,将其分解为单个 词元(通常是单个词语),并输出 词元 流。例如,空格
分词器会在看到任何空格时将文本分解为词元。它会将文本 "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
分词器将泰语文本分段为词语。
部分词语分词器编辑
这些分词器将文本或词语分解成小片段,用于部分词语匹配
结构化文本分词器编辑
以下分词器通常用于结构化文本(如标识符、电子邮件地址、邮政编码和路径),而不是全文
- 关键字分词器
keyword
分词器是一个“无操作”分词器,它接受给定的任何文本,并输出与单个词元完全相同的文本。它可以与lowercase
等词元过滤器组合使用,以规范化分析的词元。- 模式分词器
pattern
分词器使用正则表达式在匹配词语分隔符时将文本拆分为词元,或者将匹配的文本捕获为词元。- 简单模式分词器
simple_pattern
分词器使用正则表达式将匹配的文本捕获为词元。它使用正则表达式功能的受限子集,通常比pattern
分词器更快。- 字符组分词器
char_group
分词器可通过要拆分的字符集进行配置,这通常比运行正则表达式成本更低。- 简单模式拆分分词器
simple_pattern_split
分词器使用与simple_pattern
分词器相同的受限正则表达式子集,但在匹配处拆分输入,而不是将匹配返回为词元。- 路径分词器
path_hierarchy
分词器采用文件系统路径之类的层次结构值,在路径分隔符处拆分,并为树中的每个组件发出一个词元,例如/foo/bar/baz
→[/foo, /foo/bar, /foo/bar/baz ]
。