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