ElasticSearch 文本分析

在这里插入图片描述

分析器

在这里插入图片描述

类别类别名介绍
Standard Analyzerstandard标准分析器,按照 Unicode 文本分割算法切分单词,删除大多数标点符号并将单词转为小写形式,支持过滤停用词
Simple Analyzersimple简单分析器,在非字母的地方把单词切分开并将单词转为小写形式
Whitespace Analyzerwhitespace空格分析器,遇到空格就切分字符,但不改变每个字符的内容
POST _analyze
{
  "analyzer": "whitespace",
  "text":     "The quick brown fox."
}

结果为

在这里插入图片描述

字符过滤器

类别类别名介绍
HTML Strip Character Filterhtml_strip去掉文本中的html标签
Mapping Character Filtermapping根据提供的字段映射,把文本中的字符转换为映射的字符
Pattern Replace Character Filterpattern_replace根据指定的正则表达式把匹配的文本转换为指定的字符串
GET /_analyze
{
  "tokenizer": "keyword",
  "char_filter": [
    "html_strip"
  ],
  "text": "<p>I&apos;m so <b>happy</b>!</p>"
}

结果为
在这里插入图片描述

分词器

类别类别名介绍
Standard Tokenizerstandard标准分词器,标准分析器采用的分词器,删除大多数标点符号,把文本切分为独立单词
Letter Tokenizerletter字母分词器,在非字母的地方把单词切分开,非字母字符会被丢弃
Lowercase Tokenizerlowercase小写分词器,在字母分词器的基础上把大写字母转为小写字母,
Whitespace Tokenizerwhitespace空格分词器,是空格分析器的组成部分,在空格处把文本切分开并保持文本内容不变
Keyword tokenizerkeyword将输入的整个文本当作一个词汇单元,不对文本进行拆分或处理
POST _analyze
{
  "tokenizer": "lowercase",
  "text": "The 2 QUICK Brown-Foxes"
}

结果为
在这里插入图片描述

分词过滤器

类别类别名介绍
Stop token filterstop用于去除文本中常见但对分析无关紧要的停用词,比如 and that then
Length token filterlength过滤掉太短或者太长的词汇
Stemmer token filterstemmer把每个分词转化为对应的原型(例如去掉,复数,时态等)
GET _analyze
{
  "tokenizer": "standard",
  "filter": [ "stemmer" ],
  "text": "the foxes jumping quickly"
}

结果为

在这里插入图片描述

参考博客

[1]

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果您想在 Elasticsearch 中存储富文本内容并进行分析,可以使用 Elasticsearch 的 Ingest Node 插件来解析和处理富文本内容。以下是一些示例步骤: 1. 首先,您需要安装 Ingest Attachment 插件。该插件可以解析各种文件格式,包括 HTML、PDF、Word 等。 2. 然后,您需要定义一个 Ingest Pipeline,将富文本内容传入 Ingest Attachment 插件进行处理。您可以使用以下命令来创建一个 Ingest Pipeline: ``` PUT _ingest/pipeline/my_attachment_pipeline { "description" : "Extract attachment information", "processors" : [ { "attachment" : { "field" : "my_field", "target_field": "my_attachment" } } ] } ``` 其中,my_field 是包含富文本内容的字段,my_attachment 是 Ingest Attachment 插件解析后生成的字段。 3. 接下来,您可以将文档通过该 Ingest Pipeline 进行处理,如下所示: ``` PUT my_index/_doc/my_id?pipeline=my_attachment_pipeline { "my_field" : "<html><body><h1>Hello World!</h1></body></html>" } ``` 在此示例中,我们将一个包含 HTML 内容的文档传入 Ingest Pipeline 进行处理。处理后,生成的文档将包含一个名为 my_attachment 的字段,其中包含解析后的富文本内容。 4. 最后,您可以使用 Elasticsearch 的聚合功能来分析富文本内容。例如,您可以使用 Term Aggregation 来查找包含特定词语的文档: ``` GET my_index/_search { "size": 0, "aggs": { "my_terms": { "terms": { "field": "my_attachment.content", "size": 10 } } } } ``` 在此示例中,我们使用 Term Aggregation 来查找包含特定词语的文档。我们将对 my_attachment.content 字段进行聚合,以查找包含最常见词语的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java识堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值