ElasticSearch 文本分析

在这里插入图片描述

文本分析的原理

在这里插入图片描述
分析器

类别 类别名 介绍
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&apos;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 可选的内置的或定制的分词过滤器数组

参考博客

[1]

相关推荐

  1. Elasticsearch文本分析深度解析

    2023-12-29 18:02:02       10 阅读
  2. elasticsearch文档读写原理大致分析一下?

    2023-12-29 18:02:02       12 阅读
  3. Elasticsearch分析器分词器:定制文本处理流程

    2023-12-29 18:02:02       10 阅读
  4. Elasticsearch内存占用分析

    2023-12-29 18:02:02       13 阅读
  5. ElasticSearch 实战:ElasticSearch文档多条件查询

    2023-12-29 18:02:02       12 阅读
  6. ElasticSearch 实战:ElasticSearch文档聚合查询

    2023-12-29 18:02:02       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-29 18:02:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-29 18:02:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-29 18:02:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-29 18:02:02       20 阅读

热门阅读

  1. go语言面试一逃逸分析

    2023-12-29 18:02:02       39 阅读
  2. APP接入小游戏的崭新趋势

    2023-12-29 18:02:02       36 阅读
  3. 嵌入式软件测试

    2023-12-29 18:02:02       42 阅读
  4. redis缓存与数据库同步策略

    2023-12-29 18:02:02       37 阅读
  5. 【算法集训】基础数据结构:十三、哈希表

    2023-12-29 18:02:02       39 阅读
  6. (C)一些题19

    2023-12-29 18:02:02       32 阅读