elasticsearch系统学习笔记6-文本分析与分词器
概念Analysis(文本分析) 是把全文本转换成一系列单词(term/token)的过程,也叫分词;Analysis(文本分析) 是通过 Analyzer(分词器) 来实现的;可使用内置的分词器,也可以定制化分词器; Analyzer 的组成
分词器一般由三部分组成(也可以只包含部分组件):
Character Filters - 对原始文本进行一些处理操作;比如转换与过滤(去除)Tokenizer - 按照一定规则对文本进行切分;Token Filters - 将切分后的单词进行一些处理;如转换,增加(同义词…)与删除(结尾词…) 内置分词器
资料
- standard analyzer
Character FiltersTokenizer
standard Token Filters
standardLower Case (小写转换)Stop (默认关闭)
- simple analyzer
Character FiltersTokenizer
Lower Case Token Filters
Language Analyzers
- ICU analyzer
https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-icu.htmlhttps://icu.unicode.org/
./bin/elasticsearch-plugin install analysis-icu
Character Filters
Normalization Tokenizer
ICU Tokenizer Token Filters
NormalizationFoldingCollationTransform
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"
}



