ES学习记录10.3——ES分析器4(字符过滤器)

本文介绍了Elasticsearch中的三种字符过滤器:HTML Strip Char Filter用于移除HTML标签并解码实体,Mapping Char Filter实现字符串替换,Pattern Replace Char Filter利用正则表达式进行字符替换。这些过滤器在文本预处理阶段起关键作用,可用于定制分析器。
摘要由CSDN通过智能技术生成

 字符过滤器(Character filters)用于在将字符流传递给标记生成器Tokenizer之前对其进行预处理,它负责将最原始的文本作为字符流进行接受,可以对通过添加、移除或改变字符的方式改变流。比如一个字符过滤器可以用来转换印度-阿拉伯数字٠‎١٢٣٤٥٦٧٨‎٩变成等价的阿拉伯语数字0123456789,或者从流中删除<b>这样的HTML元素。ES有很多内置的字符过滤器,可以用于自定义的分析器中,主要有:

  • HTML Strip Character Filter:html_strip字符过滤器可以将流中的类似于<b>这样的HTML标签元素移除,并对HTML中类似于&amp;这样的实体进行解码;
  • Mapping Character Filter:mapping字符过滤器(映射字符过滤器)使用指定的替换字符替换指定字符串的任何出现的内容;
  • Pattern Replace Character Filter:pattern_replace字符过滤器将与正则表达式匹配的任何字符替换为指定的替换内容;

1. html标签字符过滤器(HTML Strip Char Filter)

html_strip字符过滤器从文本中删除HTML元素,并用其解码值替换HTML实体(如用&替换&amp;,在HTML语言中&amp;就是表示&),如:

curl -X POST "localhost:9200/_analyze" -H 'Content-Type: application/json' -d'
{
   
  "tokenizer":      "keyword",
  "char_filter":  [ "html_strip" ],
  "text": "<p>I&apos;m so <b>happy</b>!</p>"
}
'

返回的结果为[\nI'm so happy!\n],其中将HTML中的<p>转换为\n,将&apos;转换为'html_strip字符过滤器是可配置的,接受的参数有:

  • escaped_tags:表示一个包含HTML标签元素的列表(删除的HTML元素时,就将原始文本中出现的元素和这个列表中元素对比,如果是HTML元素且在该参数指定的列表中出现则保留,否则就移除);

下面是栗子:

curl -X PUT 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值