0
点赞
收藏
分享

微信扫一扫

ElasticSearch 文本分析


ElasticSearch 文本分析_elasticsearch

文本分析的原理

ElasticSearch 文本分析_android_02


分析器

类别

类别名

介绍

Standard Analyzer

standard

标准分析器,按照 Unicode 文本分割算法切分单词,删除大多数标点符号并将单词转为小写形式,支持过滤停用词

Simple Analyzer

simple

简单分析器,在非字母的地方把单词切分开并将单词转为小写形式

Whitespace Analyzer

whitespace

空格分析器,遇到空格就切分字符,但不改变每个字符的内容

POST _analyze
{
  "analyzer": "whitespace",
  "text":     "The quick brown fox."
}

字符过滤器

类别

类别名

介绍

HTML Strip Character Filter

html_strip

去掉文本中的html标签

Mapping Character Filter

mapping

根据提供的字段映射,把文本中的字符转换为映射的字符

Pattern Replace Character Filter

pattern_replace

根据指定的正则表达式把匹配的文本转换为指定的字符串

GET /_analyze
{
  "tokenizer": "keyword",
  "char_filter": [
    "html_strip"
  ],
  "text": "<p>I'm so <b>happy</b>!</p>"
}

过滤后的结果为

I'm so happy!

分词器

类别

类别名

介绍

Standard Tokenizer

standard

标准分词器,标准分析器采用的分词器,删除大多数标点符号,把文本切分为独立单词

Letter Tokenizer

letter

字母分词器,在非字母的地方把单词切分开,非字母字符会被丢弃

Lowercase Tokenizer

lowercase

小写分词器,在字母分词器的基础上把大写字母转为小写字母,

Whitespace Tokenizer

whitespace

空格分词器,是空格分析器的组成部分,在空格处把文本切分开并保持文本内容不变

Keyword tokenizer

keyword

将输入的整个文本当作一个词汇单元,不对文本进行拆分或处理

POST _analyze
{
  "tokenizer": "lowercase",
  "text": "The 2 QUICK Brown-Foxes"
}

[the, quick, brown, foxes]

分词过滤器

类别

类别名

介绍

Stop token filter

stop

用于去除文本中常见但对分析无关紧要的停用词,比如 and that then

Length token filter

length

过滤掉太短或者太长的词汇

Stemmer token filter

stemmer

把每个分词转化为对应的原型(例如去掉,复数,时态等)

GET _analyze
{
  "tokenizer": "standard",
  "filter": [ "stemmer" ],
  "text": "the foxes jumping quickly"
}

过滤后的结果为

[the, fox, jump, quickli]

自定义分析器

自定义分析器可以用到的参数如下

参数名

解释

type

分析器类型,对于自定义分析器,可以使用custom 或忽略此参数

tokenizer

内置的或定制的分词器,必须的

char_filter

可选的内置的或定制的字符过滤器数组

filter

可选的内置的或定制的分词过滤器数组

举报

相关推荐

0 条评论