0%

ElasticSearch-分析与分析器

官方相关阅读:

1. 分析器 Analyzer

Analysis 也叫分词,是把全文本转换成一系列单词(term/token)的过程。Analysis 是通过 Analyzer 来实现的,其中 ElasticSearch 内置了一些分析器,我们也可以按需定制化分析器。

分析器是专门处理分词的组件,其由如下三部分组成:

  • Character Filters:针对原始文本处理,例如取出 html 文本标签;
  • Tokenizer:按照规则切分为单词,例如按照空格或者标点切分文本;
  • Token Filters:将切分的单词进行加工,例如小写、删除 stopwords(停用词,如 the、a、is) 或者增加同义词等。

2. 内置 Analyzer

  • Standard Analyzer:默认分析器,按词切分,小写处理
  • Simple Analyzer:按照非字母切分(符号被过滤),小写处理
  • Stop Analyzer:小写处理,停用词过滤(the,a,is)
  • Whitespace Analyzer:按照空格切分,不转小写
  • Keyword Analyzer:不分词,直接将输入当做输出
  • Pattern Analyzer:正则表达式,默认 \W+(非字符分隔)
  • Language Analyzer:提供了 30 多种常见语言的分析器,例如将单词 eating 分析转为 eat
  • Customer Analyzer:自定义分析器

3. 其他 Analyzer

  • ICU Analyzer:提供了 Unicode 的支持,更好的支持亚洲语言
  • IK:支持中文,支持自定义词库,支持热更新分词词典

4. 示例

1
2
3
4
5
6
7
8
9
10
11
12
GET /_analyze
{
"analyzer": "standard",
"text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}

GET /_analyze
{
"tokenizer": "letter",
"filter": ["lowercase"],
"text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}
------ 本文结束------