标准分词器edit

分词器 接受一个字符串作为输入,将这个字符串拆分成独立的词或 语汇单元(token) (可能会丢弃一些标点符号等字符),然后输出一个 语汇单元流(token stream)

有趣的是用于词汇 识别 的算法。 whitespace (空白字符)分词器按空白字符 —— 空格、tabs、换行符等等进行简单拆分 —— 然后假定连续的非空格字符组成了一个语汇单元。例如:

GET /_analyze?tokenizer=whitespace
You're the 1st runner home!

这个请求会返回如下词项(terms): You'rethe1strunnerhome!

letter 分词器 ,采用另外一种策略,按照任何非字符进行拆分, 这样将会返回如下单词: Yourethestrunnerhome

standard 分词器使用 Unicode 文本分割算法 (定义来源于 Unicode Standard Annex #29)来寻找单词 之间 的界限,并且输出所有界限之间的内容。 Unicode 内含的知识使其可以成功的对包含混合语言的文本进行分词。

标点符号可能是单词的一部分,也可能不是,这取决于它出现的位置:

GET /_analyze?tokenizer=standard
You're my 'favorite'.

在这个例子中,You're 中的撇号被视为单词的一部分,然而 'favorite' 中的单引号则不会被视为单词的一部分, 所以分词结果如下: You'remyfavorite

uax_url_email 分词器和 standard 分词器工作方式极其相同。 区别只在于它能识别 email 地址和 URLs 并输出为单个语汇单元。 standard 分词器则不一样,会将 email 地址和 URLs 拆分成独立的单词。 例如,email 地址 joe-bloggs@foo-bar.com 的分词结果为 joebloggsfoobar.com

standard 分词器是大多数语言分词的一个合理的起点,特别是西方语言。 事实上,它构成了大多数特定语言分析器的基础,如 englishfrenchspanish 分析器。 它也支持亚洲语言,只是有些缺陷,你可以考虑通过 ICU 插件的方式使用 icu_tokenizer 进行替换。