概述
- 文本分析
- 把全文本转换成一系列单词的过程,也叫分词
- 是通过分词器(analyzer)实现的。
- Elasticsearch内置了分词器,也可指定外部的分词器
除了再数据写入的时候需要转换词条,匹配Query语句时也需要相同的分析器对查询语句进行分析。
API
-
直接指定Analyzer进行分词
Get /_analyze
{
"analyzer": "standard",
"text": "hello world"
}
指定索引的字段进行测试
POST indexName/_analyze { "field": "title", "text": "hello world" }
自定义分词器进行过滤
POST /_analyze { "tokenizer": "standard", "filter": ["lowercase"], "text": "Hello world" }
组成部分
Character Filters
-
Tokenizer
-
Token Fileters
将切分的单词进行加工,小写、删除stopwards、增加同义词
Elasticsearch内置的分词器
Standard Analyzer
-
Simple Analyzer
按照非字母切分(就是所有非字母的字符都会被去除掉),小写处理
Stop Analyzer
小写处理,停用词过滤(the,a,is之类的)
相比Standard Analyzer多了停用词的过滤
Whitespace Analyzer
-
Keyward Analyzer
-
Patter Analyzer
-
Language
-
Customer Analyzer
自定义分词器