anchor.diff:        "analyzer": {
           "my_analyzer": {
             "tokenizer": "keyword",
  -          "char_filter": ["my_char_filter"]
  +          "char_filter": [
  +            "my_custom_html_strip_char_filter"
  +          ]
           }
         },
         "char_filter": {
  -        "my_char_filter": {
  +        "my_custom_html_strip_char_filter": {
             "type": "html_strip",
  -          "escaped_tags": ["b"]
  +          "escaped_tags": [
  +            "b"
  +          ]
           }
         }
       }
     }
   }
  -
  -POST my_index/_analyze
  -{
  -  "analyzer": "my_analyzer",
  -  "text": "<p>I&apos;m so <b>happy</b>!</p>"
  -}
  -----------------------------
  -
  -/////////////////////
  -
  -[source,console-result]
  -----------------------------
  -{
  -  "tokens": [
  -    {
  -      "token": "\nI'm so <b>happy</b>!\n",
  -      "start_offset": 0,
  -      "end_offset": 32,
  -      "type": "word",
  -      "position": 0
  -    }
  -  ]
  -}
  -----------------------------
  -
  -/////////////////////
  -
  -
  -The above example produces the following term:
  -
  -[source,text]
  ----------------------------
  -[ \nI'm so <b>happy</b>!\n ]
  ----------------------------
  +----
  
positive.code: [[analysis-htmlstrip-charfilter]]
  === HTML Strip Char Filter
  
  The `html_strip` character filter strips HTML elements from the text and
  replaces HTML entities with their decoded value (e.g. replacing `&amp;` with
  `&`).
  
  [float]
  === Example output
  
  [source,console]
  ---------------------------
  POST _analyze
  {
    "tokenizer":      "keyword", <1>
    "char_filter":  [ "html_strip" ],
    "text": "<p>I&apos;m so <b>happy</b>!</p>"
  }
  ---------------------------
  
  <1> The <<analysis-keyword-tokenizer,`keyword` tokenizer>> returns a single term.
  
  /////////////////////
  
  [source,console-result]
  ----------------------------
  {
    "tokens": [
      {
  
negative.code:     }
    ]
  }
  ----
  ////
  
  [[analysis-htmlstrip-charfilter-analyzer-ex]]
  ==== Add to an analyzer
  
  The following <<indices-create-index,create index API>> request uses the
  `html_strip` filter to configure a new
  <<analysis-custom-analyzer,custom analyzer>>.
  
  [source,console]
  ----
  PUT /my_index
  {
    "settings": {
      "analysis": {
        "analyzer": {
          "my_analyzer": {
            "tokenizer": "keyword",
            "char_filter": [
              "html_strip"
            ]
          }
        }
      }
    }
  }
  ----
  
  [[analysis-htmlstrip-charfilter-configure-parms]]
  ==== Configurable parameters
  
  `escaped_tags`::
  (Optional, array of strings)
  Array of HTML elements without enclosing angle brackets (`< >`). The filter
  skips these HTML elements when stripping HTML from the text. For example, a
  value of `[ "p" ]` skips the `<p>` HTML element.
  
  [[analysis-htmlstrip-charfilter-customize]]
  ==== Customize
  
  To customize the `html_strip` filter, duplicate it to create the basis
  for a new custom token filter. You can modify the filter using its configurable
  parameters.
  
  The following <<indices-create-index,create index API>> request
  configures a new <<analysis-custom-analyzer,custom analyzer>> using a custom
  `html_strip` filter, `my_custom_html_strip_char_filter`.
  
  The `my_custom_html_strip_char_filter` filter skips the removal of the `<b>`
  HTML element.
  
  [source,console]
  ----
  PUT my_index
  {
    "settings": {
  