HTML Strip Character Filter

原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/5.3/analysis-htmlstrip-charfilter.html

译文链接 :http://www.apache.wiki/display/Elasticsearch/HTML+Strip+Character+Filter

贡献者 : 谢雄ApacheCNApache中文网

HTML Strip Character Filter 会删除文本中的HTML元素,并且将HTML实体替换成对应的解码值(例如用替换&)。

案例

  1. POST _analyze
  2. {
  3. "tokenizer": "keyword",
  4. "char_filter": [ "html_strip" ],
  5. "text": "<p>I&apos;m so <b>happy</b>!</p>"
  6. }

keyword分词器只会返回一个词元(term)。

上面的案例将会返回如下的词元(term):

  1. [ \nI'm so happy!\n ]

同样的案例,如果使用标准分词器(standar tokenizer)将会返回的词元(term)如下:

  1. [ I'm, so, happy ]

配置

HTML Strip Character Filter 接收如下参数:

参数名称 说明
escaped_tags 会原始文本中保留的一系列标签

配置案例:

  1. PUT my_index
  2. {
  3. "settings": {
  4. "analysis": {
  5. "analyzer": {
  6. "my_analyzer": {
  7. "tokenizer": "keyword",
  8. "char_filter": ["my_char_filter"]
  9. }
  10. },
  11. "char_filter": {
  12. "my_char_filter": {
  13. "type": "html_strip",
  14. "escaped_tags": ["b"]
  15. }
  16. }
  17. }
  18. }
  19. }
  20. POST my_index/_analyze
  21. {
  22. "analyzer": "my_analyzer",
  23. "text": "<p>I&apos;m so <b>happy</b>!</p>"
  24. }

上面案例将返回如下结果:

  1. [ \nI'm so <b>happy</b>!\n ]