elasticsearch系统学习笔记6-文本分析与分词器

elasticsearch系统学习笔记6-文本分析与分词器

概念

  • Analysis(文本分析) 是把全文本转换成一系列单词(term/token)的过程,也叫分词;
  • Analysis(文本分析) 是通过 Analyzer(分词器) 来实现的;
  • 可使用内置的分词器,也可以定制化分词器;

Analyzer 的组成

分词器一般由三部分组成(也可以只包含部分组件):

  • Character Filters - 对原始文本进行一些处理操作;比如转换与过滤(去除)
  • Tokenizer - 按照一定规则对文本进行切分;
  • Token Filters - 将切分后的单词进行一些处理;如转换,增加(同义词…)与删除(结尾词…)

内置分词器

elasticsearch系统学习笔记6-文本分析与分词器

资料

  1. standard analyzer
  • Character Filters
  • Tokenizer
    • standard
  • Token Filters
    • standard
    • Lower Case (小写转换)
    • Stop (默认关闭)
  1. simple analyzer
  • Character Filters
  • Tokenizer
    • Lower Case
  • Token Filters

Language Analyzers

  1. 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
    • Normalization
  • Tokenizer
    • ICU Tokenizer
  • Token Filters
    • Normalization
    • Folding
    • Collation
    • Transform

测试:

GET /_analyze
{
  "analyzer": "icu_analyzer",
  "text": "他说的确实在理"
}

_analyzer api

  1. 指定 Analyzer 进行测试
GET /_analyze
{
  "analyzer": "standard",
  "text": "Elasticsearch in Action"
}
  1. 指定索引的字段上所使用的分词器进行测试
POST user/_analyze
{
  "field": "name",
  "text": "Elasticsearch in action"
}
  1. 定制化分词器进行测试
POST /_analyze
{
  "tokenizer": "standard",
  "filter": ["uppercase"],
  "text": "Elasticsearch in action"
}

上一篇:crmebV4标准版数据字典


下一篇:JAVA新特性总结