anchor.diff:  [[indices-analyze]]
  -=== Analyze
  -
  -Performs the analysis process on a text and return the tokens breakdown
  -of the text.
  -
  -Can be used without specifying an index against one of the many built in
  -analyzers:
  -
  -[source,js]
  ---------------------------------------------------
  -GET _analyze
  +=== Analyze API
  +++++
  +<titleabbrev>Analyze</titleabbrev>
  +++++
  +
  +Performs <<analysis,analysis>> on a text string
  +and returns the resulting tokens.
  +
  +[source,js]
  +--------------------------------------------------
  +GET /_analyze
   {
     "analyzer" : "standard",
  -  "text" : "this is a test"
  -}
  ---------------------------------------------------
  -// CONSOLE
  -
  -If text parameter is provided as array of strings, it is analyzed as a multi-valued field.
  -
  -[source,js]
  ---------------------------------------------------
  -GET _analyze
  +  "text" : "Quick Brown Foxes!"
  +}
  +--------------------------------------------------
  +// CONSOLE
  +
  +
  +[[analyze-api-request]]
  +==== {api-request-title}
  +
  +`GET /_analyze`
  +
  +`POST /_analyze`
  +
  +`GET /<index>/_analyze`
  +
  +`POST /<index>/_analyze`
  +
  +
  +[[analyze-api-path-params]]
  +==== {api-path-parms-title}
  +
  +`<index>`::
  ++
  +--
  +(Optional, string)
  +Index used to derive the analyzer.
  +
  +If specified,
  +the `analyzer` or `<field>` parameter overrides this value.
  +
  +If no analyzer or field are specified,
  +the analyze API uses the default analyzer for the index.
  +
  +If no index is specified 
  +or the index does not have a default analyzer,
  +the analyze API uses the <<analysis-standard-analyzer,standard analyzer>>.
  +--
  +
  +
  +[[analyze-api-query-params]]
  +==== {api-query-parms-title}
  +
  +`analyzer`::
  ++
  +--
  +(Optional, string or <<analysis-custom-analyzer,custom analyzer object>>)
  +Analyzer used to analyze for the provided `text`.
  +
  +See <<analysis-analyzers>> for a list of built-in analyzers.
  +You can also provide a <<analysis-custom-analyzer,custom analyzer>>.
  +
  +If this parameter is not specified,
  +the analyze API uses the analyzer defined in the field's mapping.
  +
  +If no field is specified,
  +the analyze API uses the default analyzer for the index.
  +
  +If no index is specified,
  +or the index does not have a default analyzer,
  +the analyze API uses the <<analysis-standard-analyzer,standard analyzer>>.
  +--
  +
  +`attributes`::
  +(Optional, array of strings)
  +Array of token attributes used to filter the output of the `explain` parameter.
  +
  +`char_filter`::
  +(Optional, array of strings)
  +Array of character filters used to preprocess characters before the tokenizer.
  +See <<analysis-charfilters>> for a list of character filters.
  +
  +`explain`::
  +(Optional, boolean)
  +If `true`, the response includes token attributes and additional details.
  +Defaults to `false`.
  +experimental:[The format of the additional detail information is labelled as experimental in Lucene and it may change in the future.]
  +
  +`field`::
  ++
  +--
  +(Optional, string)
  +Field used to derive the analyzer.
  +To use this parameter,
  +you must specify an index.
  +
  +If specified,
  +the `analyzer` parameter overrides this value.
  +
  +If no field is specified,
  +the analyze API uses the default analyzer for the index.
  +
  +If no index is specified
  +or the index does not have a default analyzer,
  +the analyze API uses the <<analysis-standard-analyzer,standard analyzer>>.
  +--
  +
  +`filter`::
  +(Optional, Array of strings)
  +Array of token filters used to apply after the tokenizer.
  +See <<analysis-tokenfilters>> for a list of token filters.
  +
  +`normalizer`::
  +(Optional, string)
  +Normalizer to use to convert text into a single token.
  +See <<analysis-normalizers>> for a list of normalizers.
  +
  +`text`::
  +(Required, string or array of strings)
  +Text to analyze.
  +If an array of strings is provided, it is analyzed as a multi-value field.
  +
  +`tokenizer`::
  +(Optional, string)
  +Tokenizer to use to convert text into tokens.
  +See <<analysis-tokenizers>> for a list of tokenizers.
  +
  +[[analyze-api-example]]
  +==== {api-examples-title}
  +
  +[[analyze-api-no-index-ex]]
  +===== No index specified
  +
  +You can apply any of the built-in analyzers to the text string without
  +specifying an index.
  +
  +[source,js]
  +--------------------------------------------------
  +GET /_analyze
  +{
  +  "analyzer" : "standard",
  +  "text" : "this is a test"
  +}
  +--------------------------------------------------
  +// CONSOLE
  +
  +[[analyze-api-text-array-ex]]
  +===== Array of text strings
  +
  +If the `text` parameter is provided as array of strings, it is analyzed as a multi-value field.
  +
  +[source,js]
  +--------------------------------------------------
  +GET /_analyze
   {
     "analyzer" : "standard",
     "text" : ["this is a test", "the second text"]
  
positive.code: 
  [source,js]
  --------------------------------------------------
  PUT analyze_sample
  {
    "settings" : {
      "index.analyze.max_token_count" : 20000
  
negative.code: 
  [source,js]
  --------------------------------------------------
  GET /_analyze
  {
    "filter" : ["lowercase"],
    "text" : "BaR"
  