elasticsearch系统学习笔记6-文本分析与分词器
概念
- Analysis(文本分析) 是把
全文本 转换成一系列单词(term/token)的过程,也叫分词; - Analysis(文本分析) 是通过 Analyzer(分词器) 来实现的;
- 可使用内置的分词器,也可以
定制化 分词器;
Analyzer 的组成
分词器一般由三部分组成(也可以只包含部分组件):
- Character Filters - 对原始文本进行一些处理操作;比如转换与过滤(去除)
- Tokenizer - 按照一定规则对文本进行切分;
- Token Filters - 将切分后的单词进行一些处理;如转换,增加(同义词…)与删除(结尾词…)
内置分词器
资料
- standard analyzer
- Character Filters
- Tokenizer
- Token Filters
- standard
- Lower Case (小写转换)
- Stop (默认关闭)
- simple analyzer
- Character Filters
- Tokenizer
- Token Filters
Language Analyzers
- ICU analyzer
- https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-icu.html
- https://icu.unicode.org/
./bin/elasticsearch-plugin install analysis-icu
- Character Filters
- Tokenizer
- Token Filters
- Normalization
- Folding
- Collation
- Transform
v6.x测试
POST /_analyze
{
"char_filter": [
"icu_normalizer"
],
"tokenizer": "icu_tokenizer",
"filter": [
"icu_normalizer",
"icu_folding",
"icu_transform"
],
"text": "他说的确实在理"
}
v7.x测试
GET /_analyze
{
"analyzer": "icu_analyzer",
"text": "他说的确实在理"
}
- THULAC(THU Lexical Analyzer for Chinese)
由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能
https://nlp.csai.tsinghua.edu.cn/project/thulac/
_analyzer api
- 指定 Analyzer 进行测试
GET /_analyze
{
"analyzer": "standard",
"text": "Elasticsearch in Action"
}
- 指定索引的字段上所使用的分词器进行测试
POST user/_analyze
{
"field": "name",
"text": "Elasticsearch in action"
}
- 定制化分词器进行测试
POST /_analyze
{
"tokenizer": "standard",
"filter": ["uppercase"],
"text": "Elasticsearch in action"
}
|