一、系统自带的分析器:
(1)standard 分析器
standard 分析器是用于全文字段的默认分析器。
它考虑了以下几点:
standard 分词器,在词层级上分割输入的文本。
standard 标记过滤器,被设计用来整理分词器触发的所有标记(但是目前什么都没做)。
lowercase 标记过滤器,将所有标记转换为小写。
stop 标记过滤器,删除所有可能会造成搜索歧义的停用词,如 a,the,and,is。
(2)keyword分析器
(3)whitespace分析器
1.系统自带的字符过滤器:
(1) html_strip 字符过滤器 来删除所有的 HTML 标签,并且将 HTML 实体转换成对应的 Unicode 字符,比如将 Á 转成 Á。
2.系统自带的分词器:
(1)[keyword 分词器]输出和它接收到的相同的字符串,不做任何分词处理。
(2)[whitespace 分词器]只通过空格来分割文本。
(3)[pattern 分词器]可以通过正则表达式来分割文本
3.系统自带的标记过滤器:
(1)[lowercase 标记过滤器]
(2)[stop 标记过滤器]
(3)[stemmer 标记过滤器]将单词转化为他们的根形态(root form)。
(4)[ascii_folding 标记过滤器]会删除变音符号,比如从 très 转为 tres。
(5)[ngram] 和 [edge_ngram]可以让标记更适合特殊匹配情况或自动完成
二、创建自定义分析器
(可以在 analysis 字段下配置字符过滤器char_filter,分词器tokenizer和标记过滤器filter):
分析器 是三个顺序执行的组件的结合(字符过滤器,分词器,标记过滤器)。
--创建自定义分析器的语法格式
PUT /testindex
{
"settings": {
"analysis": {
"char_filter": { ... custom character filters ... },
"tokenizer": { ... custom tokenizers ... },
"filter": { ... custom token filters ... },