You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ct...@apache.org on 2020/07/15 16:52:39 UTC

svn commit: r1063067 [17/28] - in /websites/production/lucene/content/solr/guide/8_6: ./ meta-docs/

Modified: websites/production/lucene/content/solr/guide/8_6/response-writers.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/response-writers.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/response-writers.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Response Writers | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Response Writers | Apache Solr Reference Guide 8.6</title>
 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
 <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@@ -71,7 +71,7 @@
 
     </script>
 </head>
-<body class="DRAFT" id="response-writers">
+<body class="" id="response-writers">
 <div class="container-fluid">
   <div class="row">
   <nav id="sidebar" class="col-2 d-none d-md-block">
@@ -79,11 +79,6 @@
 <div class="sidebar-header">
   <div class="sidebarTitle text-center">Apache Solr Reference Guide</div>
   
-  <p class="draft-notice">
-    This is an unofficial DRAFT of the Guide for 8.6.
-    <a href="https://lucene.apache.org/solr/guide/">Official releases are available from the Solr website</a>.
-  </p>
-  
 
   <!--comment out this block if you want to hide search-->
     <!--start search-->
@@ -1687,10 +1682,10 @@
      <section id="preamble" aria-label="Preamble"><p>A Response Writer generates the formatted response of a search.</p>
 <p>Solr supports a variety of Response Writers to ensure that query responses can be parsed by the appropriate language or application.</p>
 <p>The <code>wt</code> parameter selects the Response Writer to be used. The list below describe shows the most common settings for the <code>wt</code> parameter, with links to further sections that discuss them in more detail.</p>
-<div class="ulist"><ul><li><a href="#csv-response-writer">csv</a></li><li><a href="#geojson-response-writer">geojson</a></li><li><a href="#binary-response-writer">javabin</a></li><li><a href="#json-response-writer">json</a></li><li><a href="#php-writer">php</a></li><li><a href="#php-writer">phps</a></li><li><a href="#python-response-writer">python</a></li><li><a href="#ruby-response-writer">ruby</a></li><li><a href="#smile-response-writer">smile</a></li><li><a href="#velocity-writer">velocity</a></li><li><a href="#xlsx-response-writer">xlsx</a></li><li><a href="#standard-xml-response-writer">xml</a></li><li><a href="#xslt-response-writer">xslt</a></li></ul></div></section>
+<div class="ulist"><ul><li><p><a href="#csv-response-writer">csv</a></p></li><li><p><a href="#geojson-response-writer">geojson</a></p></li><li><p><a href="#binary-response-writer">javabin</a></p></li><li><p><a href="#json-response-writer">json</a></p></li><li><p><a href="#php-writer">php</a></p></li><li><p><a href="#php-writer">phps</a></p></li><li><p><a href="#python-response-writer">python</a></p></li><li><p><a href="#ruby-response-writer">ruby</a></p></li><li><p><a href="#smile-response-writer">smile</a></p></li><li><p><a href="#velocity-writer">velocity</a></p></li><li><p><a href="#xlsx-response-writer">xlsx</a></p></li><li><p><a href="#standard-xml-response-writer">xml</a></p></li><li><p><a href="#xslt-response-writer">xslt</a></p></li></ul></div></section>
 <section class="sect1"><h2 id="json-response-writer">JSON Response Writer</h2><p>The default Solr Response Writer is the <code>JsonResponseWriter</code>, which formats output in JavaScript Object Notation (JSON), a lightweight data interchange format specified in specified in RFC 4627.
 The default response writer is used when:</p>
-<div class="ulist"><ul><li>the <code>wt</code> parameter is not specified in the request, or</li><li>a non-existent response writer is specified.</li></ul></div>
+<div class="ulist"><ul><li><p>the <code>wt</code> parameter is not specified in the request, or</p></li><li><p>a non-existent response writer is specified.</p></li></ul></div>
 <p>Here is a sample response for a simple query like <code>q=id:VS1GB400C3</code>:</p>
 <div class="listingblock"><pre class="rouge highlight"><code class="language-json" data-lang="json"><pre class="highlight"><code><span style="background-color: #f8f8f8">{</span><span style="color: #bbbbbb">
   </span><span style="color: #000080">"responseHeader"</span><span style="background-color: #f8f8f8">:{</span><span style="color: #bbbbbb">
@@ -1728,7 +1723,7 @@ The default response writer is used when
 <p>The <code>json.nl</code> parameter takes the following values:</p>
 <div class="dlist"><dl><dt><code>flat</code></dt><dd><p>The default. NamedList is represented as a flat array, alternating names and values.</p><p>With input of <code>NamedList("a"=1, "bar"="foo", null=3, null=null)</code>, the output would be <code>["a",1, "bar","foo", null,3, null,null]</code>.</p></dd><dt><code>map</code></dt><dd><p>NamedList is represented as a JSON object. Although this is the simplest mapping, a NamedList can have optional keys, repeated keys, and preserves order. Using a JSON object (essentially a map or hash) for a NamedList results in the loss of some information.</p><p>With input of <code>NamedList("a"=1, "bar"="foo", null=3, null=null)</code>, the output would be <code>{"a":1, "bar":"foo", "":3, "":null}</code>.</p></dd><dt><code>arrarr</code></dt><dd><p>NamedList is represented as an array of two element arrays.</p><p>With input of <code>NamedList("a"=1, "bar"="foo", null=3, null=null)</code>, the output would be <code>[["a",1], ["bar","foo"], [null,3], 
 [null,null]]</code>.</p></dd><dt><code>arrmap</code></dt><dd><p>NamedList is represented as an array of JSON objects.</p><p>With input of <code>NamedList("a"=1, "bar"="foo", null=3, null=null)</code>, the output would be <code>[{"a":1}, {"b":2}, 3, null]</code>.</p></dd><dt><code>arrntv</code></dt><dd><p>NamedList is represented as an array of Name Type Value JSON objects.</p><p>With input of <code>NamedList("a"=1, "bar"="foo", null=3, null=null)</code>, the output would be <code>[{"name":"a","type":"int","value":1}, {"name":"bar","type":"str","value":"foo"}, {"name":null,"type":"int","value":3}, {"name":null,"type":"null","value":null}]</code>.</p></dd></dl></div></section>
 <section class="sect3"><h4 id="json-wrf">json.wrf</h4><p><code>json.wrf=function</code> adds a wrapper-function around the JSON response, useful in AJAX with dynamic script tags for specifying a JavaScript callback function.</p>
-<div class="ulist"><ul><li><a class="bare" href="http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html">http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html</a></li><li><a class="bare" href="http://www.theurer.cc/blog/2005/12/15/web-services-json-dump-your-proxy/">http://www.theurer.cc/blog/2005/12/15/web-services-json-dump-your-proxy/</a></li></ul></div></section></section></section>
+<div class="ulist"><ul><li><p><a class="bare" href="http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html">http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html</a></p></li><li><p><a class="bare" href="http://www.theurer.cc/blog/2005/12/15/web-services-json-dump-your-proxy/">http://www.theurer.cc/blog/2005/12/15/web-services-json-dump-your-proxy/</a></p></li></ul></div></section></section></section>
 <section class="sect1"><h2 id="standard-xml-response-writer">Standard XML Response Writer</h2><p>The XML Response Writer is the most general purpose and reusable Response Writer currently included with Solr. It is the format used in most discussions and documentation about the response of Solr queries.</p>
 <p>Note that the XSLT Response Writer can be used to convert the XML produced by this writer to other vocabularies or text-based formats.</p>
 <p>The behavior of the XML Response Writer can be driven by the following query parameters.</p>
@@ -1762,7 +1757,7 @@ The default response writer is used when
 <section class="sect1"><h2 id="binary-response-writer">Binary Response Writer</h2><p>This is a custom binary format used by Solr for inter-node communication as well as client-server communication. SolrJ uses this as the default for indexing as well as querying. See <a href="client-apis.html#client-apis">Client APIs</a> for more details.</p></section>
 <section class="sect1"><h2 id="geojson-response-writer">GeoJSON Response Writer</h2><p>Returns Solr results in <a href="http://geojson.org">GeoJSON</a> augmented with Solr-specific JSON. To use this, set <code>wt=geojson</code> and <code>geojson.field</code> to the name of a spatial Solr field. Not all spatial fields types are supported, and you&#8217;ll get an error if you use an unsupported one.</p></section>
 <section class="sect1"><h2 id="python-response-writer">Python Response Writer</h2><p>Solr has an optional Python response format that extends its JSON output in the following ways to allow the response to be safely evaluated by the python interpreter:</p>
-<div class="ulist"><ul><li>true and false changed to True and False</li><li>Python unicode strings are used where needed</li><li>ASCII output (with unicode escapes) is used for less error-prone interoperability</li><li>newlines are escaped</li><li>null changed to None</li></ul></div></section>
+<div class="ulist"><ul><li><p>true and false changed to True and False</p></li><li><p>Python unicode strings are used where needed</p></li><li><p>ASCII output (with unicode escapes) is used for less error-prone interoperability</p></li><li><p>newlines are escaped</p></li><li><p>null changed to None</p></li></ul></div></section>
 <section class="sect1"><h2 id="php-writer">PHP Response Writer and PHP Serialized Response Writer</h2><p>Solr has a PHP response format that outputs an array (as PHP code) which can be evaluated. Setting the <code>wt</code> parameter to <code>php</code> invokes the PHP Response Writer.</p>
 <p>Example usage:</p>
 <div class="listingblock"><pre class="rouge highlight"><code class="language-php" data-lang="php"><pre class="highlight"><code>$code = file_get_contents('http://localhost:8983/solr/techproducts/select?q=iPod<span style="color: #800080">&amp;wt=php');</span>
@@ -1774,7 +1769,7 @@ print_r($result);</code></pre></code></p
 $result = unserialize($serializedResult);
 print_r($result);</code></pre></code></pre></div></section>
 <section class="sect1"><h2 id="ruby-response-writer">Ruby Response Writer</h2><p>Solr has an optional Ruby response format that extends its JSON output in the following ways to allow the response to be safely evaluated by Ruby&#8217;s interpreter:</p>
-<div class="ulist"><ul><li>Ruby&#8217;s single quoted strings are used to prevent possible string exploits.</li><li>\ and ' are the only two characters escaped.</li><li>Unicode escapes are not used. Data is written as raw UTF-8.</li><li>nil used for null.</li><li>=&gt; is used as the key/value separator in maps.</li></ul></div>
+<div class="ulist"><ul><li><p>Ruby&#8217;s single quoted strings are used to prevent possible string exploits.</p></li><li><p>\ and ' are the only two characters escaped.</p></li><li><p>Unicode escapes are not used. Data is written as raw UTF-8.</p></li><li><p>nil used for null.</p></li><li><p>=&gt; is used as the key/value separator in maps.</p></li></ul></div>
 <p>Here is a simple example of how one may query Solr using the Ruby response format:</p>
 <div class="listingblock"><pre class="rouge highlight"><code class="language-ruby" data-lang="ruby"><pre class="highlight"><code><span style="color: #0086B3">require</span> <span style="color: #d14">'net/http'</span>
 <span style="background-color: #f8f8f8">h</span> <span style="color: #000000;font-weight: bold">=</span> <span style="color: #008080">Net</span><span style="color: #000000;font-weight: bold">::</span><span style="color: #008080">HTTP</span><span style="background-color: #f8f8f8">.</span><span style="color: #990000;font-weight: bold">new</span><span style="background-color: #f8f8f8">(</span><span style="color: #d14">'localhost'</span><span style="background-color: #f8f8f8">,</span> <span style="color: #009999">8983</span><span style="background-color: #f8f8f8">)</span>
@@ -1831,7 +1826,7 @@ cp dist/solr-cell-6.3.0.jar server/solr-
             <div class="row">
                 <div class="col-lg-12 footer">
                &copy;2020 Apache Software Foundation. All rights reserved. <br />
- Site Version: 8.6-DRAFT <br />Site last generated: 2020-07-08 <br />
+ Site Version: 8.6 <br />Site last generated: 2020-07-15 <br />
 <p><img src="images/solr-sunOnly-small.png" alt="Apache Solr"/></p>
                 </div>
             </div>

Modified: websites/production/lucene/content/solr/guide/8_6/result-clustering.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/result-clustering.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/result-clustering.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Result Clustering | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Result Clustering | Apache Solr Reference Guide 8.6</title>
 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
 <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@@ -71,7 +71,7 @@
 
     </script>
 </head>
-<body class="DRAFT" id="result-clustering">
+<body class="" id="result-clustering">
 <div class="container-fluid">
   <div class="row">
   <nav id="sidebar" class="col-2 d-none d-md-block">
@@ -79,11 +79,6 @@
 <div class="sidebar-header">
   <div class="sidebarTitle text-center">Apache Solr Reference Guide</div>
   
-  <p class="draft-notice">
-    This is an unofficial DRAFT of the Guide for 8.6.
-    <a href="https://lucene.apache.org/solr/guide/">Official releases are available from the Solr website</a>.
-  </p>
-  
 
   <!--comment out this block if you want to hide search-->
     <!--start search-->
@@ -1683,7 +1678,7 @@
 <div class="imageblock"><img src="images/result-clustering/carrot2.png" alt="image" width="900"></div>
 <p>The query issued to the system was <em>Solr</em>. It seems clear that faceting could not yield a similar set of groups, although the goals of both techniques are similar—to let the user explore the set of search results and either rephrase the query or narrow the focus to a subset of current documents. Clustering is also similar to <a href="result-grouping.html#result-grouping">Result Grouping</a> in that it can help to look deeper into search results, beyond the top few hits.</p></section>
 <section class="sect1"><h2 id="clustering-concepts">Clustering Concepts</h2><p>Each <strong>document</strong> passed to the clustering component is composed of several logical parts:</p>
-<div class="ulist"><ul><li>a unique identifier,</li><li>origin URL,</li><li>the title,</li><li>the main content,</li><li>a language code of the title and content.</li></ul></div>
+<div class="ulist"><ul><li><p>a unique identifier,</p></li><li><p>origin URL,</p></li><li><p>the title,</p></li><li><p>the main content,</p></li><li><p>a language code of the title and content.</p></li></ul></div>
 <p>The identifier part is mandatory, everything else is optional but at least one of the text fields (title or content) will be required to make the clustering process reasonable. It is important to remember that logical document parts must be mapped to a particular schema and its fields. The content (text) for clustering can be sourced from either a stored text field or context-filtered using a highlighter, all these options are explained below in the <a href="#clustering-configuration">configuration</a> section.</p>
 <p>A <strong>clustering algorithm</strong> is the actual logic (implementation) that discovers relationships among the documents in the search result and forms human-readable cluster labels. Depending on the choice of the algorithm the clusters may (and probably will) vary. Solr comes with several algorithms implemented in the open source <a href="http://carrot2.org">Carrot2</a> project, commercial alternatives also exist.</p></section>
 <section class="sect1"><h2 id="clustering-quick-start-example">Clustering Quick Start Example</h2><p>The &#8220;<code>techproducts</code>&#8221; example included with Solr is pre-configured with all the necessary components for result clustering&#8201;&#8212;&#8201;but they are disabled by default.</p>
@@ -1805,9 +1800,9 @@
 <p>At the engine declaration level, the following parameters are supported.</p>
 <div class="dlist"><dl><dt><code>carrot.algorithm</code></dt><dd>The algorithm class.</dd><dt><code>carrot.resourcesDir</code></dt><dd>Algorithm-specific resources and configuration files (stop words, other lexical resources, default settings). By default points to <code>conf/clustering/carrot2/</code></dd><dt><code>carrot.outputSubClusters</code></dt><dd>If <code>true</code> and the algorithm supports hierarchical clustering, sub-clusters will also be emitted. Default value: true.</dd><dt><code>carrot.numDescriptions</code></dt><dd>Maximum number of per-cluster labels to return (if the algorithm assigns more than one label to a cluster).</dd></dl></div>
 <p>The <code>carrot.algorithm</code> parameter should contain a fully qualified class name of an algorithm supported by the <a href="http://project.carrot2.org">Carrot2</a> framework. Currently, the following algorithms are available:</p>
-<div class="ulist"><ul><li><code>org.carrot2.clustering.lingo.LingoClusteringAlgorithm</code> (open source)</li><li><code>org.carrot2.clustering.stc.STCClusteringAlgorithm</code> (open source)</li><li><code>org.carrot2.clustering.kmeans.BisectingKMeansClusteringAlgorithm</code> (open source)</li><li><code>com.carrotsearch.lingo3g.Lingo3GClusteringAlgorithm</code> (commercial)</li></ul></div>
+<div class="ulist"><ul><li><p><code>org.carrot2.clustering.lingo.LingoClusteringAlgorithm</code> (open source)</p></li><li><p><code>org.carrot2.clustering.stc.STCClusteringAlgorithm</code> (open source)</p></li><li><p><code>org.carrot2.clustering.kmeans.BisectingKMeansClusteringAlgorithm</code> (open source)</p></li><li><p><code>com.carrotsearch.lingo3g.Lingo3GClusteringAlgorithm</code> (commercial)</p></li></ul></div>
 <p>For a comparison of characteristics of these algorithms see the following links:</p>
-<div class="ulist"><ul><li><a class="bare" href="http://doc.carrot2.org/#section.advanced-topics.fine-tuning.choosing-algorithm">http://doc.carrot2.org/#section.advanced-topics.fine-tuning.choosing-algorithm</a></li><li><a class="bare" href="http://project.carrot2.org/algorithms.html">http://project.carrot2.org/algorithms.html</a></li><li><a class="bare" href="http://carrotsearch.com/lingo3g-comparison.html">http://carrotsearch.com/lingo3g-comparison.html</a></li></ul></div>
+<div class="ulist"><ul><li><p><a class="bare" href="http://doc.carrot2.org/#section.advanced-topics.fine-tuning.choosing-algorithm">http://doc.carrot2.org/#section.advanced-topics.fine-tuning.choosing-algorithm</a></p></li><li><p><a class="bare" href="http://project.carrot2.org/algorithms.html">http://project.carrot2.org/algorithms.html</a></p></li><li><p><a class="bare" href="http://carrotsearch.com/lingo3g-comparison.html">http://carrotsearch.com/lingo3g-comparison.html</a></p></li></ul></div>
 <p>The question of which algorithm to choose depends on the amount of traffic (STC is faster than Lingo, but arguably produces less intuitive clusters, Lingo3G is the fastest algorithm but is not free or open source), expected result (Lingo3G provides hierarchical clusters, Lingo and STC provide flat clusters), and the input data (each algorithm will cluster the input slightly differently). There is no one answer which algorithm is "the best".</p></section>
 <section class="sect2"><h3 id="contextual-and-full-field-clustering">Contextual and Full Field Clustering</h3><p>The clustering engine can apply clustering to the full content of (stored) fields or it can run an internal highlighter pass to extract context-snippets before clustering. Highlighting is recommended when the logical snippet field contains a lot of content (this would affect clustering performance). Highlighting can also increase the quality of clustering because the content passed to the algorithm will be more focused around the query (it will be query-specific context). The following parameters control the internal highlighter.</p>
 <div class="dlist"><dl><dt><code>carrot.produceSummary</code></dt><dd>When <code>true</code> the clustering component will run a highlighter pass on the content of logical fields pointed to by <code>carrot.title</code> and <code>carrot.snippet</code>. Otherwise full content of those fields will be clustered.</dd><dt><code>carrot.fragSize</code></dt><dd>The size, in characters, of the snippets (aka fragments) created by the highlighter. If not specified, the default highlighting fragsize (<code>hl.fragsize</code>) will be used.</dd><dt><code>carrot.summarySnippets</code></dt><dd>The number of summary snippets to generate for clustering. If not specified, the default highlighting snippet count (<code>hl.snippets</code>) will be used.</dd></dl></div></section>
@@ -1837,12 +1832,12 @@
 <p>The clustering engine (the algorithm declared in <code>solrconfig.xml</code>) can also be changed at runtime by passing <code>clustering.engine=name</code> request attribute:</p>
 <div class="listingblock"><pre class="rouge highlight"><code class="language-text" data-lang="text"><pre class="highlight"><code>http://localhost:8983/solr/techproducts/clustering?q=*:*&amp;rows=100&amp;clustering.engine=kmeans</code></pre></code></pre></div></section></section>
 <section class="sect1"><h2 id="performance-considerations-with-dynamic-clustering">Performance Considerations with Dynamic Clustering</h2><p>Dynamic clustering of search results comes with two major performance penalties:</p>
-<div class="ulist"><ul><li>Increased cost of fetching a larger-than-usual number of search results (50, 100 or more documents),</li><li>Additional computational cost of the clustering itself.</li></ul></div>
+<div class="ulist"><ul><li><p>Increased cost of fetching a larger-than-usual number of search results (50, 100 or more documents),</p></li><li><p>Additional computational cost of the clustering itself.</p></li></ul></div>
 <p>For simple queries, the clustering time will usually dominate the fetch time. If the document content is very long the retrieval of stored content can become a bottleneck. The performance impact of clustering can be lowered in several ways:</p>
-<div class="ulist"><ul><li>feed less content to the clustering algorithm by enabling <code>carrot.produceSummary</code> attribute,</li><li>perform clustering on selected fields (titles only) to make the input smaller,</li><li>use a faster algorithm (STC instead of Lingo, Lingo3G instead of STC),</li><li>tune the performance attributes related directly to a specific algorithm.</li></ul></div>
+<div class="ulist"><ul><li><p>feed less content to the clustering algorithm by enabling <code>carrot.produceSummary</code> attribute,</p></li><li><p>perform clustering on selected fields (titles only) to make the input smaller,</p></li><li><p>use a faster algorithm (STC instead of Lingo, Lingo3G instead of STC),</p></li><li><p>tune the performance attributes related directly to a specific algorithm.</p></li></ul></div>
 <p>Some of these techniques are described in <em>Apache SOLR and Carrot2 integration strategies</em> document, available at <a class="bare" href="http://carrot2.github.io/solr-integration-strategies">http://carrot2.github.io/solr-integration-strategies</a>. The topic of improving performance is also included in the Carrot2 manual at <a class="bare" href="http://doc.carrot2.org/#section.advanced-topics.fine-tuning.performance">http://doc.carrot2.org/#section.advanced-topics.fine-tuning.performance</a>.</p></section>
 <section class="sect1"><h2 id="additional-resources">Additional Resources</h2><p>The following resources provide additional information about the clustering component in Solr and its potential applications.</p>
-<div class="ulist"><ul><li>Apache Solr and Carrot2 integration strategies: <a class="bare" href="http://carrot2.github.io/solr-integration-strategies">http://carrot2.github.io/solr-integration-strategies</a></li><li>Clustering and Visualization of Solr search results (Berlin BuzzWords conference, 2011): <a class="bare" href="http://2011.berlinbuzzwords.de/sites/2011.berlinbuzzwords.de/files/solr-clustering-visualization.pdf">http://2011.berlinbuzzwords.de/sites/2011.berlinbuzzwords.de/files/solr-clustering-visualization.pdf</a></li></ul></div></section>
+<div class="ulist"><ul><li><p>Apache Solr and Carrot2 integration strategies: <a class="bare" href="http://carrot2.github.io/solr-integration-strategies">http://carrot2.github.io/solr-integration-strategies</a></p></li><li><p>Clustering and Visualization of Solr search results (Berlin BuzzWords conference, 2011): <a class="bare" href="http://2011.berlinbuzzwords.de/sites/2011.berlinbuzzwords.de/files/solr-clustering-visualization.pdf">http://2011.berlinbuzzwords.de/sites/2011.berlinbuzzwords.de/files/solr-clustering-visualization.pdf</a></p></li></ul></div></section>
   </section>
 
 
@@ -1872,7 +1867,7 @@
             <div class="row">
                 <div class="col-lg-12 footer">
                &copy;2020 Apache Software Foundation. All rights reserved. <br />
- Site Version: 8.6-DRAFT <br />Site last generated: 2020-07-08 <br />
+ Site Version: 8.6 <br />Site last generated: 2020-07-15 <br />
 <p><img src="images/solr-sunOnly-small.png" alt="Apache Solr"/></p>
                 </div>
             </div>

Modified: websites/production/lucene/content/solr/guide/8_6/result-grouping.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/result-grouping.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/result-grouping.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Result Grouping | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Result Grouping | Apache Solr Reference Guide 8.6</title>
 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
 <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@@ -71,7 +71,7 @@
 
     </script>
 </head>
-<body class="DRAFT" id="result-grouping">
+<body class="" id="result-grouping">
 <div class="container-fluid">
   <div class="row">
   <nav id="sidebar" class="col-2 d-none d-md-block">
@@ -79,11 +79,6 @@
 <div class="sidebar-header">
   <div class="sidebarTitle text-center">Apache Solr Reference Guide</div>
   
-  <p class="draft-notice">
-    This is an unofficial DRAFT of the Guide for 8.6.
-    <a href="https://lucene.apache.org/solr/guide/">Official releases are available from the Solr website</a>.
-  </p>
-  
 
   <!--comment out this block if you want to hide search-->
     <!--start search-->
@@ -1684,11 +1679,11 @@
 <p>You can however combine grouping with faceting. Grouped faceting supports <code>facet.field</code> and <code>facet.range</code> but currently doesn&#8217;t support date and pivot faceting. The facet counts are computed based on the first <code>group.field</code> parameter, and other <code>group.field</code> parameters are ignored.</p>
 <p>Grouped faceting differs from non grouped facets <code>(sum of all facets) == (total of products with that property)</code> as shown in the following example:</p>
 <p>Object 1</p>
-<div class="ulist"><ul><li>name: Phaser 4620a</li><li>ppm: 62</li><li>product_range: 6</li></ul></div>
+<div class="ulist"><ul><li><p>name: Phaser 4620a</p></li><li><p>ppm: 62</p></li><li><p>product_range: 6</p></li></ul></div>
 <p>Object 2</p>
-<div class="ulist"><ul><li>name: Phaser 4620i</li><li>ppm: 65</li><li>product_range: 6</li></ul></div>
+<div class="ulist"><ul><li><p>name: Phaser 4620i</p></li><li><p>ppm: 65</p></li><li><p>product_range: 6</p></li></ul></div>
 <p>Object 3</p>
-<div class="ulist"><ul><li>name: ML6512</li><li>ppm: 62</li><li>product_range: 7</li></ul></div>
+<div class="ulist"><ul><li><p>name: ML6512</p></li><li><p>ppm: 62</p></li><li><p>product_range: 7</p></li></ul></div>
 <p>If you ask Solr to group these documents by "product_range", then the total amount of groups is 2, but the facets for ppm are 2 for 62 and 1 for 65.</p></section>
 <section class="sect1"><h2 id="grouping-parameters">Grouping Parameters</h2><p>Result Grouping takes the following request parameters. Any number of these request parameters can be included in a single request:</p>
 <div class="dlist"><dl><dt><code>group</code></dt><dd>If <code>true</code>, query results will be grouped.</dd><dt><code>group.field</code></dt><dd>The name of the field by which to group results. The field must be single-valued, and either be indexed or a field type that has a value source and works in a function query, such as <code>ExternalFileField</code>. It must also be a string-based field, such as <code>StrField</code> or <code>TextField</code></dd><dt><code>group.func</code></dt><dd><p>Group based on the unique values of a function query.</p><div class="admonitionblock note">
@@ -1833,7 +1828,7 @@ There can be a heavy performance cost to
 </span><span style="background-color: #f8f8f8">}</span></code></pre></code></pre></div>
 <p>In this case, Solr found five matches for "memory," but only returns four results grouped by price. This is because one result for "memory" did not have a price assigned to it.</p></section></section>
 <section class="sect1"><h2 id="distributed-result-grouping-caveats">Distributed Result Grouping Caveats</h2><p>Grouping is supported for <a href="solrcloud.html#solrcloud">distributed searches</a>, with some caveats:</p>
-<div class="ulist"><ul><li>Currently <code>group.func</code> is is not supported in any distributed searches</li><li><code>group.ngroups</code> and <code>group.facet</code> require that all documents in each group must be co-located on the same shard in order for accurate counts to be returned. <a href="shards-and-indexing-data-in-solrcloud.html#shards-and-indexing-data-in-solrcloud">Document routing via composite keys</a> can be a useful solution in many situations.</li></ul></div></section>
+<div class="ulist"><ul><li><p>Currently <code>group.func</code> is is not supported in any distributed searches</p></li><li><p><code>group.ngroups</code> and <code>group.facet</code> require that all documents in each group must be co-located on the same shard in order for accurate counts to be returned. <a href="shards-and-indexing-data-in-solrcloud.html#shards-and-indexing-data-in-solrcloud">Document routing via composite keys</a> can be a useful solution in many situations.</p></li></ul></div></section>
   </section>
 
 
@@ -1863,7 +1858,7 @@ There can be a heavy performance cost to
             <div class="row">
                 <div class="col-lg-12 footer">
                &copy;2020 Apache Software Foundation. All rights reserved. <br />
- Site Version: 8.6-DRAFT <br />Site last generated: 2020-07-08 <br />
+ Site Version: 8.6 <br />Site last generated: 2020-07-15 <br />
 <p><img src="images/solr-sunOnly-small.png" alt="Apache Solr"/></p>
                 </div>
             </div>

Modified: websites/production/lucene/content/solr/guide/8_6/rule-based-authorization-plugin.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/rule-based-authorization-plugin.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/rule-based-authorization-plugin.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Rule-Based Authorization Plugins | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Rule-Based Authorization Plugins | Apache Solr Reference Guide 8.6</title>
 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
 <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@@ -71,7 +71,7 @@
 
     </script>
 </head>
-<body class="DRAFT" id="rule-based-authorization-plugin">
+<body class="" id="rule-based-authorization-plugin">
 <div class="container-fluid">
   <div class="row">
   <nav id="sidebar" class="col-2 d-none d-md-block">
@@ -79,11 +79,6 @@
 <div class="sidebar-header">
   <div class="sidebarTitle text-center">Apache Solr Reference Guide</div>
   
-  <p class="draft-notice">
-    This is an unofficial DRAFT of the Guide for 8.6.
-    <a href="https://lucene.apache.org/solr/guide/">Official releases are available from the Solr website</a>.
-  </p>
-  
 
   <!--comment out this block if you want to hide search-->
     <!--start search-->
@@ -1705,7 +1700,7 @@ For more fine-grained access control, So
 <p>In Rule-Based Authorization, administrators define a series of roles based on the permissions they want those roles to confer.  Users are then assigned one or more roles.</p>
 <section class="sect2"><h3 id="users">Users</h3><p>The users that RBAP sees come from whatever authentication plugin has been configured.  RBAP is compatible with all of the authentication plugins that Solr ships with out of the box.  It is also compatible with any custom authentication plugins users might write, provided that the plugin sets a user principal on the HttpServletRequest it receives.  The user value seen by RBAP in each case depends on the authentication plugin being used: the Kerberos principal if the <a href="kerberos-authentication-plugin.html#kerberos-authentication-plugin">Kerberos Authentication Plugin</a> is being used, the "sub" JWT claim if the <a href="jwt-authentication-plugin.html#jwt-authentication-plugin">JWT Authentication Plugin</a> is being used, etc.</p></section>
 <section class="sect2"><h3 id="roles">Roles</h3><p>Roles help bridge the gap between users and permissions. The roles can be used with any of the authentication plugins or with a custom authentication plugin if you have created one. You will only need to ensure that logged-in users are mapped to the roles defined by the plugin. There are two implementations of the plugin, which only differs in how the user&#8217;s roles are obtained:</p>
-<div class="ulist"><ul><li><code>RuleBasedAuthorizationPlugin</code>: The role-to-user mappings must be defined explicitly in <code>security.json</code> for every possible authenticated user.</li><li><code>ExternalRoleRuleBasedAuthorizationPlugin</code>: The role-to-user mappings are managed externally. This plugin expects the AuthenticationPlugin to provide a Principal that has the roles information as well, implementing the <code>VerifiedUserRoles</code> interface.</li></ul></div></section>
+<div class="ulist"><ul><li><p><code>RuleBasedAuthorizationPlugin</code>: The role-to-user mappings must be defined explicitly in <code>security.json</code> for every possible authenticated user.</p></li><li><p><code>ExternalRoleRuleBasedAuthorizationPlugin</code>: The role-to-user mappings are managed externally. This plugin expects the AuthenticationPlugin to provide a Principal that has the roles information as well, implementing the <code>VerifiedUserRoles</code> interface.</p></li></ul></div></section>
 <section class="sect2"><h3 id="permissions">Permissions</h3><p>Permissions control which roles (and consequently, which users) have access to particular chunks of Solr&#8217;s API.  Each permission has two main components: a description of the APIs this permission applies to, and a list of the roles that should be allowed to access to this set of APIs.</p>
 <p>Administrators can use permissions from a list of predefined options or define their own custom permissions, are are free to mix and match both.</p></section></section>
 <section class="sect1"><h2 id="configuring-the-rule-based-authorization-plugins">Configuring the Rule-Based Authorization Plugins</h2><p>Like all of Solr&#8217;s security plugins, configuration for RBAP lives in a file or ZooKeeper node with the name <code>security.json</code>.  See <a href="authentication-and-authorization-plugins.html#enable-plugins-with-security-json">here</a> for more information on how to setup <code>security.json</code> in your cluster.</p>
@@ -1788,7 +1783,7 @@ For more fine-grained access control, So
 <section class="sect2"><h3 id="predefined-permissions">Predefined Permissions</h3><p>Custom permissions give administrators flexibility in configuring fine-grained access control.  But in an effort to make configuration as simple as possible, RBAP also offers a handful of predefined permissions, which cover many common use-cases.</p>
 <p>Administrators invoke a predefined permission by choosing a <code>name</code> property that matches one of Solr&#8217;s predefined permission options (listed below).  Solr has its own definition for each of these permissions, and uses this information when checking whether a predefined permission matches an incoming request.  This trades flexibility for simplicity: predefined permissions do not support the <code>path</code>, <code>params</code>, or <code>method</code> properties which custom permissions allow.</p>
 <p>The predefined permission names (and their effects) are:</p>
-<div class="ulist"><ul><li><strong>security-edit:</strong> this permission is allowed to edit the security configuration, meaning any update action that modifies <code>security.json</code> through the APIs will be allowed.</li><li><strong>security-read</strong>: this permission is allowed to read the security configuration, meaning any action that reads <code>security.json</code> settings through the APIs will be allowed.</li><li><strong>schema-edit</strong>: this permission is allowed to edit a collection&#8217;s schema using the <a href="schema-api.html#schema-api">Schema API</a>. Note that this allows schema edit permissions for <em>all</em> collections. If edit permissions should only be applied to specific collections, a custom permission would need to be created.</li><li><strong>schema-read</strong>: this permission is allowed to read a collection&#8217;s schema using the <a href="schema-api.html#schema-api">Schema API</a>. Note that this allows schema read permissions for <em
 >all</em> collections. If read permissions should only be applied to specific collections, a custom permission would need to be created.</li><li><strong>config-edit</strong>: this permission is allowed to edit a collection&#8217;s configuration using the <a href="config-api.html#config-api">Config API</a>, the <a href="request-parameters-api.html#request-parameters-api">Request Parameters API</a>, and other APIs which modify <code>configoverlay.json</code>. Note that this allows configuration edit permissions for <em>all</em> collections. If edit permissions should only be applied to specific collections, a custom permission would need to be created.</li><li><strong>config-read</strong>: this permission is allowed to read a collection&#8217;s configuration using the <a href="config-api.html#config-api">Config API</a>, the <a href="request-parameters-api.html#request-parameters-api">Request Parameters API</a>, and other APIs which modify <code>configoverlay.json</code>. Note that thi
 s allows configuration read permissions for <em>all</em> collections. If read permissions should only be applied to specific collections, a custom permission would need to be created.</li><li><strong>metrics-read</strong>: this permission allows access to Solr&#8217;s <a href="metrics-reporting.html#metrics-api">Metrics API</a></li><li><strong>metrics-history-read</strong>: this permission allows access to Solr&#8217;s <a href="metrics-history.html#metrics-history-api">Metrics History API</a>, which provides long-term history for a select set of key Solr metrics.</li><li><strong>autoscaling-read</strong>: this permission allows users to read Solr&#8217;s <a href="solrcloud-autoscaling-api.html#read-api">autoscaling</a> configuration.  This covers all read-only autoscaling APIs, including:<ul><li>the "READ" API (<code>/solr/admin/autoscaling</code>)</li><li>the Diagnostics API (<code>/solr/admin/autoscaling/diagnostics</code>)</li><li>the Suggestions API (<code>/solr/admin/autoscalin
 g/suggestions</code>)</li><li>The History API (<code>/solr/admin/autoscaling/history</code>)</li></ul></li><li><strong>autoscaling-write</strong>: this permission allows users to make changes to Solr&#8217;s <a href="solrcloud-autoscaling-api.html#write-api">autoscaling</a> configuration.  This covers all operations in the autoscaling Write API, including:<ul><li>set-cluster-preferences</li><li>set-cluster-policy</li><li>set-policy</li><li>remove-policy</li><li>set-trigger</li><li>remove-trigger</li><li>set-listener</li><li>remove-listener</li><li>set-properties</li></ul></li><li><strong>core-admin-edit</strong>: Core admin commands that can mutate the system state.</li><li><strong>core-admin-read</strong>: Read operations on the core admin API</li><li><strong>collection-admin-edit</strong>: this permission is allowed to edit a collection&#8217;s configuration using the <a href="collections-api.html#collections-api">Collections API</a>. Note that this allows configuration edit permi
 ssions for <em>all</em> collections. If edit permissions should only be applied to specific collections, a custom permission would need to be created. Specifically, the following actions of the Collections API would be allowed:<ul><li>CREATE</li><li>RELOAD</li><li>SPLITSHARD</li><li>CREATESHARD</li><li>DELETESHARD</li><li>CREATEALIAS</li><li>DELETEALIAS</li><li>DELETE</li><li>DELETEREPLICA</li><li>ADDREPLICA</li><li>CLUSTERPROP</li><li>MIGRATE</li><li>ADDROLE</li><li>REMOVEROLE</li><li>ADDREPLICAPROP</li><li>DELETEREPLICAPROP</li><li>BALANCESHARDUNIQUE</li><li>REBALANCELEADERS</li></ul></li><li><strong>collection-admin-read</strong>: this permission is allowed to read a collection&#8217;s configuration using the <a href="collections-api.html#collections-api">Collections API</a>. Note that this allows configuration read permissions for <em>all</em> collections. If read permissions should only be applied to specific collections, a custom permission would need to be created. Specifical
 ly, the following actions of the Collections API would be allowed:<ul><li>LIST</li><li>OVERSEERSTATUS</li><li>CLUSTERSTATUS</li><li>REQUESTSTATUS</li></ul></li><li><strong>update</strong>: this permission is allowed to perform any update action on any collection. This includes sending documents for indexing (using an <a href="requesthandlers-and-searchcomponents-in-solrconfig.html#updaterequesthandlers">update request handler</a>). This applies to all collections by default (<code>collection:"*"</code>).</li><li><strong>read</strong>: this permission is allowed to perform any read action on any collection. This includes querying using search handlers (using <a href="requesthandlers-and-searchcomponents-in-solrconfig.html#searchhandlers">request handlers</a>) such as <code>/select</code>, <code>/get</code>, <code>/browse</code>, <code>/tvrh</code>, <code>/terms</code>, <code>/clustering</code>, <code>/elevate</code>, <code>/export</code>, <code>/spell</code>, <code>/clustering</code>
 , and <code>/sql</code>. This applies to all collections by default ( <code>collection:"*"</code> ).</li><li><strong>all</strong>: Any requests coming to Solr.</li></ul></div></section>
+<div class="ulist"><ul><li><p><strong>security-edit:</strong> this permission is allowed to edit the security configuration, meaning any update action that modifies <code>security.json</code> through the APIs will be allowed.</p></li><li><p><strong>security-read</strong>: this permission is allowed to read the security configuration, meaning any action that reads <code>security.json</code> settings through the APIs will be allowed.</p></li><li><p><strong>schema-edit</strong>: this permission is allowed to edit a collection&#8217;s schema using the <a href="schema-api.html#schema-api">Schema API</a>. Note that this allows schema edit permissions for <em>all</em> collections. If edit permissions should only be applied to specific collections, a custom permission would need to be created.</p></li><li><p><strong>schema-read</strong>: this permission is allowed to read a collection&#8217;s schema using the <a href="schema-api.html#schema-api">Schema API</a>. Note that this allows schema 
 read permissions for <em>all</em> collections. If read permissions should only be applied to specific collections, a custom permission would need to be created.</p></li><li><p><strong>config-edit</strong>: this permission is allowed to edit a collection&#8217;s configuration using the <a href="config-api.html#config-api">Config API</a>, the <a href="request-parameters-api.html#request-parameters-api">Request Parameters API</a>, and other APIs which modify <code>configoverlay.json</code>. Note that this allows configuration edit permissions for <em>all</em> collections. If edit permissions should only be applied to specific collections, a custom permission would need to be created.</p></li><li><p><strong>config-read</strong>: this permission is allowed to read a collection&#8217;s configuration using the <a href="config-api.html#config-api">Config API</a>, the <a href="request-parameters-api.html#request-parameters-api">Request Parameters API</a>, and other APIs which modify <code>co
 nfigoverlay.json</code>. Note that this allows configuration read permissions for <em>all</em> collections. If read permissions should only be applied to specific collections, a custom permission would need to be created.</p></li><li><p><strong>metrics-read</strong>: this permission allows access to Solr&#8217;s <a href="metrics-reporting.html#metrics-api">Metrics API</a></p></li><li><p><strong>metrics-history-read</strong>: this permission allows access to Solr&#8217;s <a href="metrics-history.html#metrics-history-api">Metrics History API</a>, which provides long-term history for a select set of key Solr metrics.</p></li><li><p><strong>autoscaling-read</strong>: this permission allows users to read Solr&#8217;s <a href="solrcloud-autoscaling-api.html#read-api">autoscaling</a> configuration.  This covers all read-only autoscaling APIs, including:<ul><li><p>the "READ" API (<code>/solr/admin/autoscaling</code>)</p></li><li><p>the Diagnostics API (<code>/solr/admin/autoscaling/diagnost
 ics</code>)</p></li><li><p>the Suggestions API (<code>/solr/admin/autoscaling/suggestions</code>)</p></li><li><p>The History API (<code>/solr/admin/autoscaling/history</code>)</p></li></ul></p></li><li><p><strong>autoscaling-write</strong>: this permission allows users to make changes to Solr&#8217;s <a href="solrcloud-autoscaling-api.html#write-api">autoscaling</a> configuration.  This covers all operations in the autoscaling Write API, including:<ul><li><p>set-cluster-preferences</p></li><li><p>set-cluster-policy</p></li><li><p>set-policy</p></li><li><p>remove-policy</p></li><li><p>set-trigger</p></li><li><p>remove-trigger</p></li><li><p>set-listener</p></li><li><p>remove-listener</p></li><li><p>set-properties</p></li></ul></p></li><li><p><strong>core-admin-edit</strong>: Core admin commands that can mutate the system state.</p></li><li><p><strong>core-admin-read</strong>: Read operations on the core admin API</p></li><li><p><strong>collection-admin-edit</strong>: this permission 
 is allowed to edit a collection&#8217;s configuration using the <a href="collections-api.html#collections-api">Collections API</a>. Note that this allows configuration edit permissions for <em>all</em> collections. If edit permissions should only be applied to specific collections, a custom permission would need to be created. Specifically, the following actions of the Collections API would be allowed:<ul><li><p>CREATE</p></li><li><p>RELOAD</p></li><li><p>SPLITSHARD</p></li><li><p>CREATESHARD</p></li><li><p>DELETESHARD</p></li><li><p>CREATEALIAS</p></li><li><p>DELETEALIAS</p></li><li><p>DELETE</p></li><li><p>DELETEREPLICA</p></li><li><p>ADDREPLICA</p></li><li><p>CLUSTERPROP</p></li><li><p>MIGRATE</p></li><li><p>ADDROLE</p></li><li><p>REMOVEROLE</p></li><li><p>ADDREPLICAPROP</p></li><li><p>DELETEREPLICAPROP</p></li><li><p>BALANCESHARDUNIQUE</p></li><li><p>REBALANCELEADERS</p></li></ul></p></li><li><p><strong>collection-admin-read</strong>: this permission is allowed to read a collect
 ion&#8217;s configuration using the <a href="collections-api.html#collections-api">Collections API</a>. Note that this allows configuration read permissions for <em>all</em> collections. If read permissions should only be applied to specific collections, a custom permission would need to be created. Specifically, the following actions of the Collections API would be allowed:<ul><li><p>LIST</p></li><li><p>OVERSEERSTATUS</p></li><li><p>CLUSTERSTATUS</p></li><li><p>REQUESTSTATUS</p></li></ul></p></li><li><p><strong>update</strong>: this permission is allowed to perform any update action on any collection. This includes sending documents for indexing (using an <a href="requesthandlers-and-searchcomponents-in-solrconfig.html#updaterequesthandlers">update request handler</a>). This applies to all collections by default (<code>collection:"*"</code>).</p></li><li><p><strong>read</strong>: this permission is allowed to perform any read action on any collection. This includes querying using s
 earch handlers (using <a href="requesthandlers-and-searchcomponents-in-solrconfig.html#searchhandlers">request handlers</a>) such as <code>/select</code>, <code>/get</code>, <code>/browse</code>, <code>/tvrh</code>, <code>/terms</code>, <code>/clustering</code>, <code>/elevate</code>, <code>/export</code>, <code>/spell</code>, <code>/clustering</code>, and <code>/sql</code>. This applies to all collections by default ( <code>collection:"*"</code> ).</p></li><li><p><strong>all</strong>: Any requests coming to Solr.</p></li></ul></div></section>
 <section class="sect2"><h3 id="permission-ordering-and-resolution">Permission Ordering and Resolution</h3><p>The permission syntax discussed above doesn&#8217;t do anything to prevent multiple permissions from overlapping and applying to the same Solr APIs.  In cases where multiple permissions match an incoming request, Solr chooses the first matching permission and ignores all others - even if those other permissions would match the incoming request!</p>
 <p>Since Solr only uses the first matching permission it finds, it&#8217;s important for administrators to understand what ordering Solr uses when processing the permission list.</p>
 <p>The ordering Solr uses is complex.  Solr tries to check first any permissions which are specific or relevant to the incoming request, only moving on to more general permissions if none of the more-specific ones match.  In effect, this means that different requests may check the same permissions in very different orders.</p>
@@ -1807,7 +1802,7 @@ For more fine-grained access control, So
 <p>For a query to a collection called <code>collection1</code> on the other hand, the most specific permission present is permission 2, so <em>all</em> roles are given access.</p></section></section>
 <section class="sect1"><h2 id="authorization-api">Authorization API</h2><section class="sect2"><h3 id="authorization-api-endpoint">Authorization API Endpoint</h3><p><code>/admin/authorization</code>: takes a set of commands to create permissions, map permissions to roles, and map roles to users.</p></section>
 <section class="sect2"><h3 id="manage-permissions">Manage Permissions</h3><p>Three commands control managing permissions:</p>
-<div class="ulist"><ul><li><code>set-permission</code>: create a new permission, overwrite an existing permission definition, or assign a pre-defined permission to a role.</li><li><code>update-permission</code>: update some attributes of an existing permission definition.</li><li><code>delete-permission</code>: remove a permission definition.</li></ul></div>
+<div class="ulist"><ul><li><p><code>set-permission</code>: create a new permission, overwrite an existing permission definition, or assign a pre-defined permission to a role.</p></li><li><p><code>update-permission</code>: update some attributes of an existing permission definition.</p></li><li><p><code>delete-permission</code>: remove a permission definition.</p></li></ul></div>
 <p>Created properties can either be custom or predefined.  In addition to the permission syntax discussed above, these commands also allow permissions to have a <code>before</code> property, whose value matches the index of the permission that this new permission should be placed before in <code>security.json</code>.</p>
 <p>The following creates a new permission named "collection-mgr" that is allowed to create and list collections. The permission will be placed before the "read" permission. Note also that we have defined "collection as <code>null</code>, this is because requests to the Collections API are never collection-specific.</p>
 <div class="listingblock"><pre class="rouge highlight"><code class="language-bash" data-lang="bash"><pre class="highlight"><code>curl --user solr:SolrRocks -H <span style="color: #d14">'Content-type:application/json'</span> -d <span style="color: #d14">'{
@@ -1833,7 +1828,7 @@ For more fine-grained access control, So
   "delete-permission": 3
 }'</span> http://localhost:8983/solr/admin/authorization</code></pre></code></pre></div></section>
 <section class="sect2"><h3 id="map-roles-to-users">Map Roles to Users</h3><p>A single command allows roles to be mapped to users:</p>
-<div class="ulist"><ul><li><code>set-user-role</code>: map a user to a permission.</li></ul></div>
+<div class="ulist"><ul><li><p><code>set-user-role</code>: map a user to a permission.</p></li></ul></div>
 <p>To remove a user&#8217;s permission, you should set the role to <code>null</code>. There is no command to delete a user role.</p>
 <p>The values supplied to the command are simply a user ID and one or more roles the user should have.</p>
 <p>For example, the following would grant a user "solr" the "admin" and "dev" roles, and remove all roles from the user ID "harry":</p>
@@ -1870,7 +1865,7 @@ For more fine-grained access control, So
             <div class="row">
                 <div class="col-lg-12 footer">
                &copy;2020 Apache Software Foundation. All rights reserved. <br />
- Site Version: 8.6-DRAFT <br />Site last generated: 2020-07-08 <br />
+ Site Version: 8.6 <br />Site last generated: 2020-07-15 <br />
 <p><img src="images/solr-sunOnly-small.png" alt="Apache Solr"/></p>
                 </div>
             </div>

Modified: websites/production/lucene/content/solr/guide/8_6/rule-based-replica-placement.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/rule-based-replica-placement.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/rule-based-replica-placement.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Rule-based Replica Placement | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Rule-based Replica Placement | Apache Solr Reference Guide 8.6</title>
 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
 <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@@ -71,7 +71,7 @@
 
     </script>
 </head>
-<body class="DRAFT" id="rule-based-replica-placement">
+<body class="" id="rule-based-replica-placement">
 <div class="container-fluid">
   <div class="row">
   <nav id="sidebar" class="col-2 d-none d-md-block">
@@ -79,11 +79,6 @@
 <div class="sidebar-header">
   <div class="sidebarTitle text-center">Apache Solr Reference Guide</div>
   
-  <p class="draft-notice">
-    This is an unofficial DRAFT of the Guide for 8.6.
-    <a href="https://lucene.apache.org/solr/guide/">Official releases are available from the Solr website</a>.
-  </p>
-  
 
   <!--comment out this block if you want to hide search-->
     <!--start search-->
@@ -1685,20 +1680,20 @@
 <p>With very large clusters, it is hard to specify exact node names and it still does not give you fine grained control over how nodes are chosen for a shard. The user should be in complete control of where the nodes are allocated for each collection, shard and replica. This helps to optimally allocate hardware resources across the cluster.</p>
 <p>Rule-based replica assignment allows the creation of rules to determine the placement of replicas in the cluster. In the future, this feature will help to automatically add or remove replicas when systems go down, or when higher throughput is required. This enables a more hands-off approach to administration of the cluster.</p>
 <p>This feature is used in the following instances:</p>
-<div class="ulist"><ul><li>Collection creation</li><li>Shard creation</li><li>Replica creation</li><li>Shard splitting</li></ul></div></section>
+<div class="ulist"><ul><li><p>Collection creation</p></li><li><p>Shard creation</p></li><li><p>Replica creation</p></li><li><p>Shard splitting</p></li></ul></div></section>
 <section class="sect1"><h2 id="common-use-cases">Common Use Cases</h2><p>There are several situations where this functionality may be used. A few of the rules that could be implemented are listed below:</p>
-<div class="ulist"><ul><li>Don’t assign more than 1 replica of this collection to a host.</li><li>Assign all replicas to nodes with more than 100GB of free disk space or, assign replicas where there is more disk space.</li><li>Do not assign any replica on a given host because I want to run an overseer there.</li><li>Assign only one replica of a shard in a rack.</li><li>Assign replica in nodes hosting less than 5 cores.</li><li>Assign replicas in nodes hosting the least number of cores.</li></ul></div></section>
+<div class="ulist"><ul><li><p>Don’t assign more than 1 replica of this collection to a host.</p></li><li><p>Assign all replicas to nodes with more than 100GB of free disk space or, assign replicas where there is more disk space.</p></li><li><p>Do not assign any replica on a given host because I want to run an overseer there.</p></li><li><p>Assign only one replica of a shard in a rack.</p></li><li><p>Assign replica in nodes hosting less than 5 cores.</p></li><li><p>Assign replicas in nodes hosting the least number of cores.</p></li></ul></div></section>
 <section class="sect1"><h2 id="rule-conditions">Rule Conditions</h2><p>A rule is a set of conditions that a node must satisfy before a replica core can be created there.</p>
 <p>There are three possible conditions.</p>
-<div class="ulist"><ul><li><strong>shard</strong>: this is the name of a shard or a wild card (* means for all shards). If shard is not specified, then the rule applies to the entire collection.</li><li><strong>replica</strong>: this can be a number or a wild-card (* means any number zero to infinity).</li><li><strong>tag</strong>: this is an attribute of a node in the cluster that can be used in a rule, e.g., “freedisk”, “cores”, “rack”, “dc”, etc. The tag name can be a custom string. If creating a custom tag, a snitch is responsible for providing tags and values. The section <a href="#snitches">Snitches</a> below describes how to add a custom tag, and defines six pre-defined tags (cores, freedisk, host, port, node, and sysprop).</li></ul></div>
+<div class="ulist"><ul><li><p><strong>shard</strong>: this is the name of a shard or a wild card (* means for all shards). If shard is not specified, then the rule applies to the entire collection.</p></li><li><p><strong>replica</strong>: this can be a number or a wild-card (* means any number zero to infinity).</p></li><li><p><strong>tag</strong>: this is an attribute of a node in the cluster that can be used in a rule, e.g., “freedisk”, “cores”, “rack”, “dc”, etc. The tag name can be a custom string. If creating a custom tag, a snitch is responsible for providing tags and values. The section <a href="#snitches">Snitches</a> below describes how to add a custom tag, and defines six pre-defined tags (cores, freedisk, host, port, node, and sysprop).</p></li></ul></div>
 <section class="sect2"><h3 id="rule-operators">Rule Operators</h3><p>A condition can have one of the following operators to set the parameters for the rule.</p>
-<div class="ulist"><ul><li><strong>equals (no operator required)</strong>: <code>tag:x</code> means tag value must be equal to ‘x’</li><li><strong>greater than (&gt;)</strong>: <code>tag:&gt;x</code> means tag value greater than ‘x’. x must be a number</li><li><strong>less than (&lt;)</strong>: <code>tag:&lt;x</code> means tag value less than ‘x’. x must be a number</li><li><strong>not equal (!)</strong>: <code>tag:!x</code> means tag value MUST NOT be equal to ‘x’. The equals check is performed on String value</li></ul></div></section>
+<div class="ulist"><ul><li><p><strong>equals (no operator required)</strong>: <code>tag:x</code> means tag value must be equal to ‘x’</p></li><li><p><strong>greater than (&gt;)</strong>: <code>tag:&gt;x</code> means tag value greater than ‘x’. x must be a number</p></li><li><p><strong>less than (&lt;)</strong>: <code>tag:&lt;x</code> means tag value less than ‘x’. x must be a number</p></li><li><p><strong>not equal (!)</strong>: <code>tag:!x</code> means tag value MUST NOT be equal to ‘x’. The equals check is performed on String value</p></li></ul></div></section>
 <section class="sect2"><h3 id="fuzzy-operator">Fuzzy Operator (~)</h3><p>This can be used as a suffix to any condition. This would first try to satisfy the rule strictly. If Solr can’t find enough nodes to match the criterion, it tries to find the next best match which may not satisfy the criterion. For example, if we have a rule such as, <code>freedisk:&gt;200~</code>, Solr will try to assign replicas of this collection on nodes with more than 200GB of free disk space. If that is not possible, the node which has the most free disk space will be chosen instead.</p></section>
 <section class="sect2"><h3 id="choosing-among-equals">Choosing Among Equals</h3><p>The nodes are sorted first and the rules are used to sort them. This ensures that even if many nodes match the rules, the best nodes are picked up for node assignment. For example, if there is a rule such as <code>freedisk:&gt;20</code>, nodes are sorted first on disk space descending and the node with the most disk space is picked up first. Or, if the rule is <code>cores:&lt;5</code>, nodes are sorted with number of cores ascending and the node with the least number of cores is picked up first.</p></section></section>
 <section class="sect1"><h2 id="rules-for-new-shards">Rules for New Shards</h2><p>The rules are persisted along with collection state. So, when a new replica is created, the system will assign replicas satisfying the rules. When a new shard is created as a result of using the Collection API&#8217;s <a href="shard-management.html#createshard">CREATESHARD command</a>, ensure that you have created rules specific for that shard name. Rules can be altered using the <a href="collection-management.html#modifycollection">MODIFYCOLLECTION command</a>. However, it is not required to do so if the rules do not specify explicit shard names. For example, a rule such as <code>shard:shard1,replica:*,ip_3:168:</code>, will not apply to any new shard created. But, if your rule is <code>replica:*,ip_3:168</code>, then it will apply to any new shard created.</p>
 <p>The same is applicable to shard splitting. Shard splitting is treated exactly the same way as shard creation. Even though <code>shard1_1</code> and <code>shard1_2</code> may be created from <code>shard1</code>, the rules treat them as distinct, unrelated shards.</p></section>
 <section class="sect1"><h2 id="snitches">Snitches</h2><p>Tag values come from a plugin called Snitch. If there is a tag named ‘rack’ in a rule, there must be Snitch which provides the value for ‘rack’ for each node in the cluster. A snitch implements the Snitch interface. Solr, by default, provides a default snitch which provides the following tags:</p>
-<div class="ulist"><ul><li><strong>cores</strong>: Number of cores in the node</li><li><strong>freedisk</strong>: Disk space available in the node</li><li><strong>host</strong>: host name of the node</li><li><strong>port</strong>: port of the node</li><li><strong>node</strong>: node name</li><li><strong>role</strong>: The role of the node. The only supported role is 'overseer'</li><li><strong>ip_1, ip_2, ip_3, ip_4</strong>: These are ip fragments for each node. For example, in a host with ip <code>192.168.1.2</code>, <code>ip_1 = 2</code>, <code>ip_2 =1</code>, <code>ip_3 = 168</code> and` ip_4 = 192`</li><li><strong>sysprop.{PROPERTY_NAME}</strong>: These are values available from system properties. <code>sysprop.key</code> means a value that is passed to the node as <code>-Dkey=keyValue</code> during the node startup. It is possible to use rules like <code>sysprop.key:expectedVal,shard:*</code></li></ul></div>
+<div class="ulist"><ul><li><p><strong>cores</strong>: Number of cores in the node</p></li><li><p><strong>freedisk</strong>: Disk space available in the node</p></li><li><p><strong>host</strong>: host name of the node</p></li><li><p><strong>port</strong>: port of the node</p></li><li><p><strong>node</strong>: node name</p></li><li><p><strong>role</strong>: The role of the node. The only supported role is 'overseer'</p></li><li><p><strong>ip_1, ip_2, ip_3, ip_4</strong>: These are ip fragments for each node. For example, in a host with ip <code>192.168.1.2</code>, <code>ip_1 = 2</code>, <code>ip_2 =1</code>, <code>ip_3 = 168</code> and` ip_4 = 192`</p></li><li><p><strong>sysprop.{PROPERTY_NAME}</strong>: These are values available from system properties. <code>sysprop.key</code> means a value that is passed to the node as <code>-Dkey=keyValue</code> during the node startup. It is possible to use rules like <code>sysprop.key:expectedVal,shard:*</code></p></li></ul></div>
 <section class="sect2"><h3 id="how-snitches-are-configured">How Snitches are Configured</h3><p>It is possible to use one or more snitches for a set of rules. If the rules only need tags from default snitch it need not be explicitly configured. For example:</p>
 <div class="listingblock"><pre class="rouge highlight"><code class="language-text" data-lang="text"><pre class="highlight"><code>snitch=class:fqn.ClassName,key1:val1,key2:val2,key3:val3</code></pre></code></pre></div>
 <p><strong>How Tag Values are Collected</strong></p>
@@ -1750,7 +1745,7 @@
             <div class="row">
                 <div class="col-lg-12 footer">
                &copy;2020 Apache Software Foundation. All rights reserved. <br />
- Site Version: 8.6-DRAFT <br />Site last generated: 2020-07-08 <br />
+ Site Version: 8.6 <br />Site last generated: 2020-07-15 <br />
 <p><img src="images/solr-sunOnly-small.png" alt="Apache Solr"/></p>
                 </div>
             </div>

Modified: websites/production/lucene/content/solr/guide/8_6/running-solr-on-hdfs.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/running-solr-on-hdfs.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/running-solr-on-hdfs.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Running Solr on HDFS | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Running Solr on HDFS | Apache Solr Reference Guide 8.6</title>
 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
 <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@@ -71,7 +71,7 @@
 
     </script>
 </head>
-<body class="DRAFT" id="running-solr-on-hdfs">
+<body class="" id="running-solr-on-hdfs">
 <div class="container-fluid">
   <div class="row">
   <nav id="sidebar" class="col-2 d-none d-md-block">
@@ -79,11 +79,6 @@
 <div class="sidebar-header">
   <div class="sidebarTitle text-center">Apache Solr Reference Guide</div>
   
-  <p class="draft-notice">
-    This is an unofficial DRAFT of the Guide for 8.6.
-    <a href="https://lucene.apache.org/solr/guide/">Official releases are available from the Solr website</a>.
-  </p>
-  
 
   <!--comment out this block if you want to hide search-->
     <!--start search-->
@@ -1683,7 +1678,7 @@
 <i class="fa icon-warning" title="Warning"></i>
 </td>
 <td class="content">
-HDFS support in Solr is deprecated as of 8.6 and maybe be removed in 9.0. See SOLR-14021 for details.
+Storing indexes in HDFS is deprecated and may be be removed in 9.0. This functionality may be moved to a 3rd-party plugin in the future.
 </td>
 </tr>
 </table>
@@ -1691,9 +1686,9 @@ HDFS support in Solr is deprecated as of
 <p>Solr has support for writing and reading its index and transaction log files to the HDFS distributed filesystem.</p>
 <p>This does not use Hadoop MapReduce to process Solr data, rather it only uses the HDFS filesystem for index and transaction log file storage.</p>
 <p>To use HDFS rather than a local filesystem, you must be using Hadoop 2.x and you will need to instruct Solr to use the <code>HdfsDirectoryFactory</code>. There are also several additional parameters to define. These can be set in one of three ways:</p>
-<div class="ulist"><ul><li>Pass JVM arguments to the <code>bin/solr</code> script. These would need to be passed every time you start Solr with <code>bin/solr</code>.</li><li>Modify <code>solr.in.sh</code> (or <code>solr.in.cmd</code> on Windows) to pass the JVM arguments automatically when using <code>bin/solr</code> without having to set them manually.</li><li>Define the properties in <code>solrconfig.xml</code>. These configuration changes would need to be repeated for every collection, so is a good option if you only want some of your collections stored in HDFS.</li></ul></div></section>
+<div class="ulist"><ul><li><p>Pass JVM arguments to the <code>bin/solr</code> script. These would need to be passed every time you start Solr with <code>bin/solr</code>.</p></li><li><p>Modify <code>solr.in.sh</code> (or <code>solr.in.cmd</code> on Windows) to pass the JVM arguments automatically when using <code>bin/solr</code> without having to set them manually.</p></li><li><p>Define the properties in <code>solrconfig.xml</code>. These configuration changes would need to be repeated for every collection, so is a good option if you only want some of your collections stored in HDFS.</p></li></ul></div></section>
 <section class="sect1"><h2 id="starting-solr-on-hdfs">Starting Solr on HDFS</h2><section class="sect2"><h3 id="standalone-solr-instances">Standalone Solr Instances</h3><p>For standalone Solr instances, there are a few parameters you should modify before starting Solr. These can be set in <code>solrconfig.xml</code> (more on that <a href="#hdfsdirectoryfactory-parameters">below</a>), or passed to the <code>bin/solr</code> script at startup.</p>
-<div class="ulist"><ul><li>You need to use an <code>HdfsDirectoryFactory</code> and a data directory in the form <code>hdfs://host:port/path</code></li><li>You need to specify an <code>updateLog</code> location in the form <code>hdfs://host:port/path</code></li><li>You should specify a lock factory type of <code>'hdfs'</code> or none.</li></ul></div>
+<div class="ulist"><ul><li><p>You need to use an <code>HdfsDirectoryFactory</code> and a data directory in the form <code>hdfs://host:port/path</code></p></li><li><p>You need to specify an <code>updateLog</code> location in the form <code>hdfs://host:port/path</code></p></li><li><p>You should specify a lock factory type of <code>'hdfs'</code> or none.</p></li></ul></div>
 <p>If you do not modify <code>solrconfig.xml</code>, you can instead start Solr on HDFS with the following command:</p>
 <div class="listingblock"><pre class="rouge highlight"><code class="language-bash" data-lang="bash"><pre class="highlight"><code>bin/solr start -Dsolr.directoryFactory<span style="color: #000000;font-weight: bold">=</span>HdfsDirectoryFactory
      -Dsolr.lock.type<span style="color: #000000;font-weight: bold">=</span>hdfs
@@ -1701,7 +1696,7 @@ HDFS support in Solr is deprecated as of
      -Dsolr.updatelog<span style="color: #000000;font-weight: bold">=</span>hdfs://host:port/path</code></pre></code></pre></div>
 <p>This example will start Solr in standalone mode, using the defined JVM properties (explained in more detail <a href="#hdfsdirectoryfactory-parameters">below</a>).</p></section>
 <section class="sect2"><h3 id="solrcloud-instances">SolrCloud Instances</h3><p>In SolrCloud mode, it&#8217;s best to leave the data and update log directories as the defaults Solr comes with and simply specify the <code>solr.hdfs.home</code>. All dynamically created collections will create the appropriate directories automatically under the <code>solr.hdfs.home</code> root directory.</p>
-<div class="ulist"><ul><li>Set <code>solr.hdfs.home</code> in the form <code>hdfs://host:port/path</code></li><li>You should specify a lock factory type of <code>'hdfs'</code> or none.</li></ul></div>
+<div class="ulist"><ul><li><p>Set <code>solr.hdfs.home</code> in the form <code>hdfs://host:port/path</code></p></li><li><p>You should specify a lock factory type of <code>'hdfs'</code> or none.</p></li></ul></div>
 <div class="listingblock"><pre class="rouge highlight"><code class="language-bash" data-lang="bash"><pre class="highlight"><code>bin/solr start -c -Dsolr.directoryFactory<span style="color: #000000;font-weight: bold">=</span>HdfsDirectoryFactory
      -Dsolr.lock.type<span style="color: #000000;font-weight: bold">=</span>hdfs
      -Dsolr.hdfs.home<span style="color: #000000;font-weight: bold">=</span>hdfs://host:port/path</code></pre></code></pre></div>
@@ -1793,7 +1788,7 @@ Enable the use of NRTCachingDirectory. T
             <div class="row">
                 <div class="col-lg-12 footer">
                &copy;2020 Apache Software Foundation. All rights reserved. <br />
- Site Version: 8.6-DRAFT <br />Site last generated: 2020-07-08 <br />
+ Site Version: 8.6 <br />Site last generated: 2020-07-15 <br />
 <p><img src="images/solr-sunOnly-small.png" alt="Apache Solr"/></p>
                 </div>
             </div>

Modified: websites/production/lucene/content/solr/guide/8_6/running-your-analyzer.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/running-your-analyzer.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/running-your-analyzer.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Running Your Analyzer | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Running Your Analyzer | Apache Solr Reference Guide 8.6</title>
 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
 <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@@ -71,7 +71,7 @@
 
     </script>
 </head>
-<body class="DRAFT" id="running-your-analyzer">
+<body class="" id="running-your-analyzer">
 <div class="container-fluid">
   <div class="row">
   <nav id="sidebar" class="col-2 d-none d-md-block">
@@ -79,11 +79,6 @@
 <div class="sidebar-header">
   <div class="sidebarTitle text-center">Apache Solr Reference Guide</div>
   
-  <p class="draft-notice">
-    This is an unofficial DRAFT of the Guide for 8.6.
-    <a href="https://lucene.apache.org/solr/guide/">Official releases are available from the Solr website</a>.
-  </p>
-  
 
   <!--comment out this block if you want to hide search-->
     <!--start search-->
@@ -1664,7 +1659,7 @@
 <p>By looking at the start and end positions for each term, we can see that the only thing this field type does is tokenize text on whitespace. Notice in this image that the term "Running" has a start position of 0 and an end position of 7, while "an" has a start position of 8 and an end position of 10, and "Analyzer" starts at 11 and ends at 19. If the whitespace between the terms was also included, the count would be 21; since it is 19, we know that whitespace has been removed from this query.</p>
 <p>Note also that the indexed terms and the query terms are still very different. "Running" doesn&#8217;t match "run", "Analyzer" doesn&#8217;t match "analyzer" (to a computer), and obviously "an" and "my" are totally different words. If our objective is to allow queries like "run my analyzer" to match indexed text like "Running an Analyzer" then we will evidently need to pick a different field type with index &amp; query time text analysis that does more processing of the inputs.</p>
 <p>In particular we will want:</p>
-<div class="ulist"><ul><li>Case insensitivity, so "Analyzer" and "analyzer" match.</li><li>Stemming, so words like "Run" and "Running" are considered equivalent terms.</li><li>Stop Word Pruning, so small words like "an" and "my" don&#8217;t affect the query.</li></ul></div>
+<div class="ulist"><ul><li><p>Case insensitivity, so "Analyzer" and "analyzer" match.</p></li><li><p>Stemming, so words like "Run" and "Running" are considered equivalent terms.</p></li><li><p>Stop Word Pruning, so small words like "an" and "my" don&#8217;t affect the query.</p></li></ul></div>
 <p>For our next attempt, let&#8217;s try the &#8220;<code>text_general</code>&#8221; field type:</p>
 <div class="imageblock"><img src="images/running-your-analyzer/analysis_compare_1.png" alt="image"></div>
 <p>With the verbose output enabled, we can see how each stage of our new analyzers modify the tokens they receive before passing them on to the next stage. As we scroll down to the final output, we can see that we do start to get a match on "analyzer" from each input string, thanks to the "LCF" stage&#8201;&#8212;&#8201;which if you hover over with your mouse, you&#8217;ll see is the &#8220;<code>LowerCaseFilter</code>&#8221;:</p>
@@ -1703,7 +1698,7 @@
             <div class="row">
                 <div class="col-lg-12 footer">
                &copy;2020 Apache Software Foundation. All rights reserved. <br />
- Site Version: 8.6-DRAFT <br />Site last generated: 2020-07-08 <br />
+ Site Version: 8.6 <br />Site last generated: 2020-07-15 <br />
 <p><img src="images/solr-sunOnly-small.png" alt="Apache Solr"/></p>
                 </div>
             </div>

Modified: websites/production/lucene/content/solr/guide/8_6/scalar-math.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/scalar-math.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/scalar-math.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Scalar Math | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Scalar Math | Apache Solr Reference Guide 8.6</title>
 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
 <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@@ -71,7 +71,7 @@
 
     </script>
 </head>
-<body class="DRAFT" id="scalar-math">
+<body class="" id="scalar-math">
 <div class="container-fluid">
   <div class="row">
   <nav id="sidebar" class="col-2 d-none d-md-block">
@@ -79,11 +79,6 @@
 <div class="sidebar-header">
   <div class="sidebarTitle text-center">Apache Solr Reference Guide</div>
   
-  <p class="draft-notice">
-    This is an unofficial DRAFT of the Guide for 8.6.
-    <a href="https://lucene.apache.org/solr/guide/">Official releases are available from the Solr website</a>.
-  </p>
-  
 
   <!--comment out this block if you want to hide search-->
     <!--start search-->
@@ -1768,7 +1763,7 @@ of the <strong>price_f</strong> field in
             <div class="row">
                 <div class="col-lg-12 footer">
                &copy;2020 Apache Software Foundation. All rights reserved. <br />
- Site Version: 8.6-DRAFT <br />Site last generated: 2020-07-08 <br />
+ Site Version: 8.6 <br />Site last generated: 2020-07-15 <br />
 <p><img src="images/solr-sunOnly-small.png" alt="Apache Solr"/></p>
                 </div>
             </div>

Modified: websites/production/lucene/content/solr/guide/8_6/schema-api.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/schema-api.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/schema-api.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Schema API | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Schema API | Apache Solr Reference Guide 8.6</title>
 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
 <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@@ -71,7 +71,7 @@
 
     </script>
 </head>
-<body class="DRAFT" id="schema-api">
+<body class="" id="schema-api">
 <div class="container-fluid">
   <div class="row">
   <nav id="sidebar" class="col-2 d-none d-md-block">
@@ -79,11 +79,6 @@
 <div class="sidebar-header">
   <div class="sidebarTitle text-center">Apache Solr Reference Guide</div>
   
-  <p class="draft-notice">
-    This is an unofficial DRAFT of the Guide for 8.6.
-    <a href="https://lucene.apache.org/solr/guide/">Official releases are available from the Solr website</a>.
-  </p>
-  
 
   <!--comment out this block if you want to hide search-->
     <!--start search-->
@@ -1723,7 +1718,7 @@
 </table>
 </div></section>
 <section class="sect1"><h2 id="modify-the-schema">Modify the Schema</h2><p>To add, remove or replace fields, dynamic field rules, copy field rules, or new field types, you can send a POST request to the <code>/api/&lt;collections|cores&gt;/&lt;name&gt;/schema/</code> endpoint with a sequence of commands in JSON format to perform the requested actions. The following commands are supported:</p>
-<div class="ulist"><ul><li><code>add-field</code>: add a new field with parameters you provide.</li><li><code>delete-field</code>: delete a field.</li><li><code>replace-field</code>: replace an existing field with one that is differently configured.</li><li><code>add-dynamic-field</code>: add a new dynamic field rule with parameters you provide.</li><li><code>delete-dynamic-field</code>: delete a dynamic field rule.</li><li><code>replace-dynamic-field</code>: replace an existing dynamic field rule with one that is differently configured.</li><li><code>add-field-type</code>: add a new field type with parameters you provide.</li><li><code>delete-field-type</code>: delete a field type.</li><li><code>replace-field-type</code>: replace an existing field type with one that is differently configured.</li><li><code>add-copy-field</code>: add a new copy field rule.</li><li><code>delete-copy-field</code>: delete a copy field rule.</li></ul></div>
+<div class="ulist"><ul><li><p><code>add-field</code>: add a new field with parameters you provide.</p></li><li><p><code>delete-field</code>: delete a field.</p></li><li><p><code>replace-field</code>: replace an existing field with one that is differently configured.</p></li><li><p><code>add-dynamic-field</code>: add a new dynamic field rule with parameters you provide.</p></li><li><p><code>delete-dynamic-field</code>: delete a dynamic field rule.</p></li><li><p><code>replace-dynamic-field</code>: replace an existing dynamic field rule with one that is differently configured.</p></li><li><p><code>add-field-type</code>: add a new field type with parameters you provide.</p></li><li><p><code>delete-field-type</code>: delete a field type.</p></li><li><p><code>replace-field-type</code>: replace an existing field type with one that is differently configured.</p></li><li><p><code>add-copy-field</code>: add a new copy field rule.</p></li><li><p><code>delete-copy-field</code>: delete a copy f
 ield rule.</p></li></ul></div>
 <p>These commands can be issued in separate POST requests or in the same POST request. Commands are executed in the order in which they are specified.</p>
 <p>In each case, the response will include the status and the time to process the request, but will not include the entire schema.</p>
 <p>When modifying the schema with the API, a core reload will automatically occur in order for the changes to be available immediately for documents indexed thereafter. Previously indexed documents will <strong>not</strong> be automatically handled - they <strong>must</strong> be reindexed if they used schema elements that you changed.</p>
@@ -2369,7 +2364,7 @@
             <div class="row">
                 <div class="col-lg-12 footer">
                &copy;2020 Apache Software Foundation. All rights reserved. <br />
- Site Version: 8.6-DRAFT <br />Site last generated: 2020-07-08 <br />
+ Site Version: 8.6 <br />Site last generated: 2020-07-15 <br />
 <p><img src="images/solr-sunOnly-small.png" alt="Apache Solr"/></p>
                 </div>
             </div>

Modified: websites/production/lucene/content/solr/guide/8_6/schema-browser-screen.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/schema-browser-screen.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/schema-browser-screen.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Schema Browser Screen | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Schema Browser Screen | Apache Solr Reference Guide 8.6</title>
 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
 <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
@@ -71,7 +71,7 @@
 
     </script>
 </head>
-<body class="DRAFT" id="schema-browser-screen">
+<body class="" id="schema-browser-screen">
 <div class="container-fluid">
   <div class="row">
   <nav id="sidebar" class="col-2 d-none d-md-block">
@@ -79,11 +79,6 @@
 <div class="sidebar-header">
   <div class="sidebarTitle text-center">Apache Solr Reference Guide</div>
   
-  <p class="draft-notice">
-    This is an unofficial DRAFT of the Guide for 8.6.
-    <a href="https://lucene.apache.org/solr/guide/">Official releases are available from the Solr website</a>.
-  </p>
-  
 
   <!--comment out this block if you want to hide search-->
     <!--start search-->
@@ -1704,7 +1699,7 @@
             <div class="row">
                 <div class="col-lg-12 footer">
                &copy;2020 Apache Software Foundation. All rights reserved. <br />
- Site Version: 8.6-DRAFT <br />Site last generated: 2020-07-08 <br />
+ Site Version: 8.6 <br />Site last generated: 2020-07-15 <br />
 <p><img src="images/solr-sunOnly-small.png" alt="Apache Solr"/></p>
                 </div>
             </div>