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 [2/28] - in /websites/production/lucene/content/solr/guide/8_6: ./ meta-docs/

Modified: websites/production/lucene/content/solr/guide/8_6/analytics-mapping-functions.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/analytics-mapping-functions.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/analytics-mapping-functions.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Analytics Mapping Functions | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Analytics Mapping Functions | 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="analytics-mapping-functions">
+<body class="" id="analytics-mapping-functions">
 <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-->
@@ -1716,85 +1711,85 @@
 <p>Below is a list of all mapping functions provided by the Analytics Component.
 These mappings can be chained together to implement more complex functionality.</p></section>
 <section class="sect1"><h2 id="numeric-functions">Numeric Functions</h2><section class="sect2"><h3 id="negation">Negation</h3><p>Negates the result of a numeric expression.</p>
-<div class="dlist"><dl><dt><code>neg(&lt;_Numeric_ T&gt;)</code> =&gt; <code>&lt;T&gt;</code></dt><dd><ul><li><code>neg(10.53)</code> =&gt; <code>-10.53</code></li><li><code>neg([1, -4])</code> =&gt; <code>[-1, 4]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>neg(&lt;_Numeric_ T&gt;)</code> =&gt; <code>&lt;T&gt;</code></dt><dd><ul><li><p><code>neg(10.53)</code> =&gt; <code>-10.53</code></p></li><li><p><code>neg([1, -4])</code> =&gt; <code>[-1, 4]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="absolute-value">Absolute Value</h3><p>Returns the absolute value of the numeric expression.</p>
-<div class="dlist"><dl><dt><code>abs(&lt; <em>Numeric</em> T &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><code>abs(-10.53)</code> =&gt; <code>10.53</code></li><li><code>abs([1, -4])</code> =&gt; <code>[1, 4]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>abs(&lt; <em>Numeric</em> T &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><p><code>abs(-10.53)</code> =&gt; <code>10.53</code></p></li><li><p><code>abs([1, -4])</code> =&gt; <code>[1, 4]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="analytics-round">Round</h3><p>Rounds the numeric expression to the nearest <code>Integer</code> or <code>Long</code> value.</p>
-<div class="dlist"><dl><dt><code>round(&lt; <em>Float</em> &gt;)</code> =&gt; <code>&lt; <em>Int</em> &gt;</code></dt><dt><code>round(&lt; <em>Double</em> &gt;)</code> =&gt; <code>&lt; <em>Long</em> &gt;</code></dt><dd><ul><li><code>round(-1.5)</code> =&gt; <code>-1</code></li><li><code>round([1.75, 100.34])</code> =&gt; <code>[2, 100]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>round(&lt; <em>Float</em> &gt;)</code> =&gt; <code>&lt; <em>Int</em> &gt;</code></dt><dt><code>round(&lt; <em>Double</em> &gt;)</code> =&gt; <code>&lt; <em>Long</em> &gt;</code></dt><dd><ul><li><p><code>round(-1.5)</code> =&gt; <code>-1</code></p></li><li><p><code>round([1.75, 100.34])</code> =&gt; <code>[2, 100]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="ceiling">Ceiling</h3><p>Rounds the numeric expression to the nearest <code>Integer</code> or <code>Long</code> value that is greater than or equal to the original value.</p>
-<div class="dlist"><dl><dt><code>ceil(&lt; <em>Float</em> &gt;)</code> =&gt; <code>&lt; <em>Int</em> &gt;</code></dt><dt><code>ceil(&lt; <em>Double</em> &gt;)</code> =&gt; <code>&lt; <em>Long</em> &gt;</code></dt><dd><ul><li><code>ceil(5.01)</code> =&gt; <code>5</code></li><li><code>ceil([-4.999, 6.99])</code> =&gt; <code>[-4, 7]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>ceil(&lt; <em>Float</em> &gt;)</code> =&gt; <code>&lt; <em>Int</em> &gt;</code></dt><dt><code>ceil(&lt; <em>Double</em> &gt;)</code> =&gt; <code>&lt; <em>Long</em> &gt;</code></dt><dd><ul><li><p><code>ceil(5.01)</code> =&gt; <code>5</code></p></li><li><p><code>ceil([-4.999, 6.99])</code> =&gt; <code>[-4, 7]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="analytics-floor">Floor</h3><p>Rounds the numeric expression to the nearest <code>Integer</code> or <code>Long</code> value that is less than or equal to the original value.</p>
-<div class="dlist"><dl><dt><code>floor(&lt; <em>Float</em> &gt;)</code> =&gt; <code>&lt; <em>Int</em> &gt;</code></dt><dt><code>floor(&lt; <em>Double</em> &gt;)</code> =&gt; <code>&lt; <em>Long</em> &gt;</code></dt><dd><ul><li><code>floor(5.75)</code> =&gt; <code>5</code></li><li><code>floor([-4.001, 6.01])</code> =&gt; <code>[-5, 6]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>floor(&lt; <em>Float</em> &gt;)</code> =&gt; <code>&lt; <em>Int</em> &gt;</code></dt><dt><code>floor(&lt; <em>Double</em> &gt;)</code> =&gt; <code>&lt; <em>Long</em> &gt;</code></dt><dd><ul><li><p><code>floor(5.75)</code> =&gt; <code>5</code></p></li><li><p><code>floor([-4.001, 6.01])</code> =&gt; <code>[-5, 6]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="addition">Addition</h3><p>Adds the values of the numeric expressions.</p>
-<div class="dlist"><dl><dt><code>add(&lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><code>add([1, -4])</code> =&gt; <code>-3.0</code></li></ul></dd><dt><code>add(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>add(3.5, [1, -4])</code> =&gt; <code>[4.5, -0.5]</code></li></ul></dd><dt><code>add(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>add([1, -4], 3.5)</code> =&gt; <code>[4.5, -0.5]</code></li></ul></dd><dt><code>add(&lt; <em>Single Double</em> &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><code>add(3.5, 100, -27.6)</code> =&gt; <code>75.9</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>add(&lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><p><code>add([1, -4])</code> =&gt; <code>-3.0</code></p></li></ul></dd><dt><code>add(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>add(3.5, [1, -4])</code> =&gt; <code>[4.5, -0.5]</code></p></li></ul></dd><dt><code>add(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>add([1, -4], 3.5)</code> =&gt; <code>[4.5, -0.5]</code></p></li></ul></dd><dt><code>add(&lt; <em>Single Double</em> &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><p><code>add(3.5, 100, -27.6)</code> =&gt; <code>75.9</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="subtraction">Subtraction</h3><p>Subtracts the values of the numeric expressions.</p>
-<div class="dlist"><dl><dt><code>sub(&lt; <em>Single Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><code>sub(3.5, 100)</code> =&gt; <code>-76.5</code></li></ul></dd><dt><code>sub(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>sub(3.5, [1, -4])</code> =&gt; <code>[2.5, 7.5]</code></li></ul></dd><dt><code>sub(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>sub([1, -4], 3.5)</code> =&gt; <code>[-2.5, -7.5]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>sub(&lt; <em>Single Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><p><code>sub(3.5, 100)</code> =&gt; <code>-76.5</code></p></li></ul></dd><dt><code>sub(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>sub(3.5, [1, -4])</code> =&gt; <code>[2.5, 7.5]</code></p></li></ul></dd><dt><code>sub(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>sub([1, -4], 3.5)</code> =&gt; <code>[-2.5, -7.5]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="multiplication">Multiplication</h3><p>Multiplies the values of the numeric expressions.</p>
-<div class="dlist"><dl><dt><code>mult(&lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><code>mult([1, -4])</code> =&gt; <code>-4.0</code></li></ul></dd><dt><code>mult(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>mult(3.5, [1, -4])</code> =&gt; <code>[3.5, -16.0]</code></li></ul></dd><dt><code>mult(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>mult([1, -4], 3.5)</code> =&gt; <code>[3.5, 16.0]</code></li></ul></dd><dt><code>mult(&lt; <em>Single Double</em> &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><code>mult(3.5, 100, -27.6)</code> =&gt; <code>-9660</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>mult(&lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><p><code>mult([1, -4])</code> =&gt; <code>-4.0</code></p></li></ul></dd><dt><code>mult(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>mult(3.5, [1, -4])</code> =&gt; <code>[3.5, -16.0]</code></p></li></ul></dd><dt><code>mult(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>mult([1, -4], 3.5)</code> =&gt; <code>[3.5, 16.0]</code></p></li></ul></dd><dt><code>mult(&lt; <em>Single Double</em> &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><p><code>mult(3.5, 100, -27.6)</code> =&gt; <code>-9660</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="division">Division</h3><p>Divides the values of the numeric expressions.</p>
-<div class="dlist"><dl><dt><code>div(&lt; <em>Single Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><code>div(3.5, 100)</code> =&gt; <code>.035</code></li></ul></dd><dt><code>div(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>div(3.5, [1, -4])</code> =&gt; <code>[3.5, -0.875]</code></li></ul></dd><dt><code>div(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>div([1, -4], 25)</code> =&gt; <code>[0.04, -0.16]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>div(&lt; <em>Single Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><p><code>div(3.5, 100)</code> =&gt; <code>.035</code></p></li></ul></dd><dt><code>div(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>div(3.5, [1, -4])</code> =&gt; <code>[3.5, -0.875]</code></p></li></ul></dd><dt><code>div(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>div([1, -4], 25)</code> =&gt; <code>[0.04, -0.16]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="power">Power</h3><p>Takes one numeric expression to the power of another.</p>
 <p><strong>NOTE:</strong> The square root function <code>sqrt(&lt; <em>Double</em> &gt;)</code> can be used as shorthand for  <code>pow(&lt; <em>Double</em> &gt;, .5)</code></p>
-<div class="dlist"><dl><dt><code>pow(&lt; <em>Single Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><code>pow(2, 4)</code> =&gt; <code>16.0</code></li></ul></dd><dt><code>pow(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>pow(16, [-1, 0])</code> =&gt; <code>[0.0625, 1]</code></li></ul></dd><dt><code>pow(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>pow([1, 16], .25)</code> =&gt; <code>[1.0, 2.0]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>pow(&lt; <em>Single Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><p><code>pow(2, 4)</code> =&gt; <code>16.0</code></p></li></ul></dd><dt><code>pow(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>pow(16, [-1, 0])</code> =&gt; <code>[0.0625, 1]</code></p></li></ul></dd><dt><code>pow(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>pow([1, 16], .25)</code> =&gt; <code>[1.0, 2.0]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="logarithm">Logarithm</h3><p>Takes one logarithm of numeric expressions, with an optional second numeric expression as the base.
 If only one expression is given, the natural log is used.</p>
-<div class="dlist"><dl><dt><code>log(&lt; <em>Double</em> &gt;)</code> =&gt; <code>&lt; <em>Double</em> &gt;</code></dt><dd><ul><li><code>log(5)</code> =&gt; <code>1.6094&#8230;&#8203;</code></li><li><code>log([1.0, 100.34])</code> =&gt; <code>[0.0, 4.6085&#8230;&#8203;]</code></li></ul></dd><dt><code>log(&lt; <em>Single Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><code>log(2, 4)</code> =&gt; <code>0.5</code></li></ul></dd><dt><code>log(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>log(16, [2, 4])</code> =&gt; <code>[4, 2]</code></li></ul></dd><dt><code>log(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><code>log([81, 3], 9)</code> =&gt; <code>[2.0, 0.5]</code></li></ul></dd></dl></div></section></section>
+<div class="dlist"><dl><dt><code>log(&lt; <em>Double</em> &gt;)</code> =&gt; <code>&lt; <em>Double</em> &gt;</code></dt><dd><ul><li><p><code>log(5)</code> =&gt; <code>1.6094&#8230;&#8203;</code></p></li><li><p><code>log([1.0, 100.34])</code> =&gt; <code>[0.0, 4.6085&#8230;&#8203;]</code></p></li></ul></dd><dt><code>log(&lt; <em>Single Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Single Double</em> &gt;</code></dt><dd><ul><li><p><code>log(2, 4)</code> =&gt; <code>0.5</code></p></li></ul></dd><dt><code>log(&lt; <em>Single Double</em> &gt;, &lt; <em>Multi Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>log(16, [2, 4])</code> =&gt; <code>[4, 2]</code></p></li></ul></dd><dt><code>log(&lt; <em>Multi Double</em> &gt;, &lt; <em>Single Double</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Double</em> &gt;</code></dt><dd><ul><li><p><code>log([81, 3], 9)</code> =&gt; <code>[2.0, 0.5]</code></p></li></ul></dd>
 </dl></div></section></section>
 <section class="sect1"><h2 id="logic">Logic</h2><section class="sect2"><h3 id="analytics-logic-neg">Negation</h3><p>Negates the result of a boolean expression.</p>
-<div class="dlist"><dl><dt><code>neg(&lt; <em>Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Bool</em>&gt;</code></dt><dd><ul><li><code>neg(F)</code> =&gt; <code>T</code></li><li><code>neg([F, T])</code> =&gt; <code>[T, F]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>neg(&lt; <em>Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Bool</em>&gt;</code></dt><dd><ul><li><p><code>neg(F)</code> =&gt; <code>T</code></p></li><li><p><code>neg([F, T])</code> =&gt; <code>[T, F]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="analytics-and">And</h3><p>ANDs the values of the boolean expressions.</p>
-<div class="dlist"><dl><dt><code>and(&lt; <em>Multi Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><code>and([T, F, T])</code> =&gt; <code>F</code></li></ul></dd><dt><code>and(&lt; <em>Single Bool</em> &gt;, &lt; <em>Multi Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>and(F, [T, T])</code> =&gt; <code>[F, F]</code></li></ul></dd><dt><code>and(&lt; <em>Multi Bool</em> &gt;, &lt; <em>Single Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>and([F, T], T)</code> =&gt; <code>[F, T]</code></li></ul></dd><dt><code>and(&lt; <em>Single Bool</em> &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><code>and(T, T, T)</code> =&gt; <code>T</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>and(&lt; <em>Multi Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><p><code>and([T, F, T])</code> =&gt; <code>F</code></p></li></ul></dd><dt><code>and(&lt; <em>Single Bool</em> &gt;, &lt; <em>Multi Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>and(F, [T, T])</code> =&gt; <code>[F, F]</code></p></li></ul></dd><dt><code>and(&lt; <em>Multi Bool</em> &gt;, &lt; <em>Single Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>and([F, T], T)</code> =&gt; <code>[F, T]</code></p></li></ul></dd><dt><code>and(&lt; <em>Single Bool</em> &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><p><code>and(T, T, T)</code> =&gt; <code>T</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="analytics-or">Or</h3><p>ORs the values of the boolean expressions.</p>
-<div class="dlist"><dl><dt><code>or(&lt; <em>Multi Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><code>or([T, F, T])</code> =&gt; <code>T</code></li></ul></dd><dt><code>or(&lt; <em>Single Bool</em> &gt;, &lt; <em>Multi Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>or(F, [F, T])</code> =&gt; <code>[F, T]</code></li></ul></dd><dt><code>or(&lt; <em>Multi Bool</em> &gt;, &lt; <em>Single Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>or([F, T], T)</code> =&gt; <code>[T, T]</code></li></ul></dd><dt><code>or(&lt; <em>Single Bool</em> &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><code>or(F, F, F)</code> =&gt; <code>F</code></li></ul></dd></dl></div>
+<div class="dlist"><dl><dt><code>or(&lt; <em>Multi Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><p><code>or([T, F, T])</code> =&gt; <code>T</code></p></li></ul></dd><dt><code>or(&lt; <em>Single Bool</em> &gt;, &lt; <em>Multi Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>or(F, [F, T])</code> =&gt; <code>[F, T]</code></p></li></ul></dd><dt><code>or(&lt; <em>Multi Bool</em> &gt;, &lt; <em>Single Bool</em> &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>or([F, T], T)</code> =&gt; <code>[T, T]</code></p></li></ul></dd><dt><code>or(&lt; <em>Single Bool</em> &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><p><code>or(F, F, F)</code> =&gt; <code>F</code></p></li></ul></dd></dl></div>
 <section class="sect3"><h4 id="exists">Exists</h4><p>Checks whether any value(s) exist for the expression.</p>
-<div class="dlist"><dl><dt><code>exists( T )</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><code>exists([1, 2, 3])</code> =&gt; <code>T</code></li><li><code>exists([])</code> =&gt; <code>F</code></li><li><code>exists(<em>empty</em>)</code> =&gt; <code>F</code></li><li><code>exists('abc')</code> =&gt; <code>T</code></li></ul></dd></dl></div></section></section></section>
+<div class="dlist"><dl><dt><code>exists( T )</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><p><code>exists([1, 2, 3])</code> =&gt; <code>T</code></p></li><li><p><code>exists([])</code> =&gt; <code>F</code></p></li><li><p><code>exists(<em>empty</em>)</code> =&gt; <code>F</code></p></li><li><p><code>exists('abc')</code> =&gt; <code>T</code></p></li></ul></dd></dl></div></section></section></section>
 <section class="sect1"><h2 id="comparison">Comparison</h2><section class="sect2"><h3 id="equality">Equality</h3><p>Checks whether two expressions' values are equal. The parameters must be the same type, after implicit casting.</p>
-<div class="dlist"><dl><dt><code>equal(&lt; <em>Single</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><code>equal(F, F)</code> =&gt; <code>T</code></li></ul></dd><dt><code>equal(&lt; <em>Single</em> T &gt;, &lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>equal("a", ["a", "ab"])</code> =&gt; <code>[T, F]</code></li></ul></dd><dt><code>equal(&lt; <em>Multi</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>equal([1.5, -3.0], -3)</code> =&gt; <code>[F, T]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>equal(&lt; <em>Single</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><p><code>equal(F, F)</code> =&gt; <code>T</code></p></li></ul></dd><dt><code>equal(&lt; <em>Single</em> T &gt;, &lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>equal("a", ["a", "ab"])</code> =&gt; <code>[T, F]</code></p></li></ul></dd><dt><code>equal(&lt; <em>Multi</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>equal([1.5, -3.0], -3)</code> =&gt; <code>[F, T]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="greater-than">Greater Than</h3><p>Checks whether a numeric or <code>Date</code> expression&#8217;s values are greater than another expression&#8217;s values.
 The parameters must be the same type, after implicit casting.</p>
-<div class="dlist"><dl><dt><code>gt(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><code>gt(1800-01-02, 1799-12-20)</code> =&gt; <code>F</code></li></ul></dd><dt><code>gt(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>gt(30.756, [30, 100])</code> =&gt; <code>[F, T]</code></li></ul></dd><dt><code>gt(&lt; <em>Multi Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>gt([30, 75.6], 30)</code> =&gt; <code>[F, T]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>gt(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><p><code>gt(1800-01-02, 1799-12-20)</code> =&gt; <code>F</code></p></li></ul></dd><dt><code>gt(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>gt(30.756, [30, 100])</code> =&gt; <code>[F, T]</code></p></li></ul></dd><dt><code>gt(&lt; <em>Multi Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>gt([30, 75.6], 30)</code> =&gt; <code>[F, T]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="greater-than-or-equals">Greater Than or Equals</h3><p>Checks whether a numeric or <code>Date</code> expression&#8217;s values are greater than or equal to another expression&#8217;s values.
 The parameters must be the same type, after implicit casting.</p>
-<div class="dlist"><dl><dt><code>gte(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><code>gte(1800-01-02, 1799-12-20)</code> =&gt; <code>F</code></li></ul></dd><dt><code>gte(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>gte(30.756, [30, 100])</code> =&gt; <code>[F, T]</code></li></ul></dd><dt><code>gte(&lt; <em>Multi Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>gte([30, 75.6], 30)</code> =&gt; <code>[T, T]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>gte(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><p><code>gte(1800-01-02, 1799-12-20)</code> =&gt; <code>F</code></p></li></ul></dd><dt><code>gte(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>gte(30.756, [30, 100])</code> =&gt; <code>[F, T]</code></p></li></ul></dd><dt><code>gte(&lt; <em>Multi Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>gte([30, 75.6], 30)</code> =&gt; <code>[T, T]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="less-than">Less Than</h3><p>Checks whether a numeric or <code>Date</code> expression&#8217;s values are less than another expression&#8217;s values.
 The parameters must be the same type, after implicit casting.</p>
-<div class="dlist"><dl><dt><code>lt(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><code>lt(1800-01-02, 1799-12-20)</code> =&gt; <code>T</code></li></ul></dd><dt><code>lt(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>lt(30.756, [30, 100])</code> =&gt; <code>[T, F]</code></li></ul></dd><dt><code>lt(&lt; <em>Multi Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>lt([30, 75.6], 30)</code> =&gt; <code>[F, F]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>lt(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><p><code>lt(1800-01-02, 1799-12-20)</code> =&gt; <code>T</code></p></li></ul></dd><dt><code>lt(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>lt(30.756, [30, 100])</code> =&gt; <code>[T, F]</code></p></li></ul></dd><dt><code>lt(&lt; <em>Multi Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>lt([30, 75.6], 30)</code> =&gt; <code>[F, F]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="less-than-or-equals">Less Than or Equals</h3><p>Checks whether a numeric or <code>Date</code> expression&#8217;s values are less than or equal to another expression&#8217;s values.
 The parameters must be the same type, after implicit casting.</p>
-<div class="dlist"><dl><dt><code>lte(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><code>lte(1800-01-02, 1799-12-20)</code> =&gt; <code>T</code></li></ul></dd><dt><code>lte(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>lte(30.756, [30, 100])</code> =&gt; <code>[T, F]</code></li></ul></dd><dt><code>lte(&lt; <em>Multi Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><code>lte([30, 75.6], 30)</code> =&gt; <code>[T, F]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>lte(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Single Bool</em> &gt;</code></dt><dd><ul><li><p><code>lte(1800-01-02, 1799-12-20)</code> =&gt; <code>T</code></p></li></ul></dd><dt><code>lte(&lt; <em>Single Numeric/Date</em> T &gt;, &lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>lte(30.756, [30, 100])</code> =&gt; <code>[T, F]</code></p></li></ul></dd><dt><code>lte(&lt; <em>Multi Numeric/Date</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; <em>Multi Bool</em> &gt;</code></dt><dd><ul><li><p><code>lte([30, 75.6], 30)</code> =&gt; <code>[T, F]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="analytics-top">Top</h3><p>Returns the maximum of the numeric, <code>Date</code> or <code>String</code> expression(s)' values.
 The parameters must be the same type, after implicit casting.
 (Currently the only type not compatible is <code>Boolean</code>, which will be converted to a <code>String</code> implicitly in order to compile the expression)</p>
-<div class="dlist"><dl><dt><code>top(&lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Single</em> T &gt;</code></dt><dd><ul><li><code>top([30, 400, -10, 0])</code> =&gt; <code>400</code></li></ul></dd><dt><code>top(&lt; <em>Single</em> T &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single</em> T &gt;</code></dt><dd><ul><li><code>top("a", 1, "d")</code> =&gt; <code>"d"</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>top(&lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Single</em> T &gt;</code></dt><dd><ul><li><p><code>top([30, 400, -10, 0])</code> =&gt; <code>400</code></p></li></ul></dd><dt><code>top(&lt; <em>Single</em> T &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single</em> T &gt;</code></dt><dd><ul><li><p><code>top("a", 1, "d")</code> =&gt; <code>"d"</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="bottom">Bottom</h3><p>Returns the minimum of the numeric, <code>Date</code> or <code>String</code> expression(s)' values.
 The parameters must be the same type, after implicit casting.
 (Currently the only type not compatible is <code>Boolean</code>, which will be converted to a <code>String</code> implicitly in order to compile the expression)</p>
-<div class="dlist"><dl><dt><code>bottom(&lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Single</em> T &gt;</code></dt><dd><ul><li><code>bottom([30, 400, -10, 0])</code> =&gt; <code>-10</code></li></ul></dd><dt><code>bottom(&lt; <em>Single</em> T &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single</em> T &gt;</code></dt><dd><ul><li><code>bottom("a", 1, "d")</code> =&gt; <code>"1"</code></li></ul></dd></dl></div></section></section>
+<div class="dlist"><dl><dt><code>bottom(&lt; <em>Multi</em> T &gt;)</code> =&gt; <code>&lt; <em>Single</em> T &gt;</code></dt><dd><ul><li><p><code>bottom([30, 400, -10, 0])</code> =&gt; <code>-10</code></p></li></ul></dd><dt><code>bottom(&lt; <em>Single</em> T &gt;, &#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single</em> T &gt;</code></dt><dd><ul><li><p><code>bottom("a", 1, "d")</code> =&gt; <code>"1"</code></p></li></ul></dd></dl></div></section></section>
 <section class="sect1"><h2 id="conditional">Conditional</h2><section class="sect2"><h3 id="analytics-if">If</h3><p>Returns the value(s) of the <code>THEN</code> or <code>ELSE</code> expressions depending on whether the boolean conditional expression&#8217;s value is <code>true</code> or <code>false</code>.
 The <code>THEN</code> and <code>ELSE</code> expressions must be of the same type and cardinality after implicit casting is done.</p>
-<div class="dlist"><dl><dt><code>if(&lt; <em>Single Bool</em>&gt;, &lt; T &gt;, &lt; T &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><code>if(true, "abc", [1,2])</code> =&gt; <code>["abc"]</code></li><li><code>if(false, "abc", 123)</code> =&gt; <code>"123"</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>if(&lt; <em>Single Bool</em>&gt;, &lt; T &gt;, &lt; T &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><p><code>if(true, "abc", [1,2])</code> =&gt; <code>["abc"]</code></p></li><li><p><code>if(false, "abc", 123)</code> =&gt; <code>"123"</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="replace">Replace</h3><p>Replace all values from the 1<sup>st</sup> expression that are equal to the value of the 2<sup>nd</sup> expression with the value of the 3<sup>rd</sup> expression.
 All parameters must be the same type after implicit casting is done.</p>
-<div class="dlist"><dl><dt><code>replace(&lt; T &gt;, &lt; <em>Single</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><code>replace([1,3], 3, "4")</code> =&gt; <code>["1", "4"]</code></li><li><code>replace("abc", "abc", 18)</code> =&gt; <code>"18"</code></li><li><code>replace("abc", 1, "def")</code> =&gt; <code>"abc"</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>replace(&lt; T &gt;, &lt; <em>Single</em> T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><p><code>replace([1,3], 3, "4")</code> =&gt; <code>["1", "4"]</code></p></li><li><p><code>replace("abc", "abc", 18)</code> =&gt; <code>"18"</code></p></li><li><p><code>replace("abc", 1, "def")</code> =&gt; <code>"abc"</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="fill-missing">Fill Missing</h3><p>If the 1<sup>st</sup> expression does not have values, fill it with the values for the 2<sup>nd</sup> expression.
 Both expressions must be of the same type and cardinality after implicit casting is done.</p>
-<div class="dlist"><dl><dt><code>fill_missing(&lt; T &gt;, &lt; T &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><code>fill_missing([], 3)</code> =&gt; <code>[3]</code></li><li><code>fill_missing(<em>empty</em>, "abc")</code> =&gt; <code>"abc"</code></li><li><code>fill_missing("abc", [1])</code> =&gt; <code>["abc"]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>fill_missing(&lt; T &gt;, &lt; T &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><p><code>fill_missing([], 3)</code> =&gt; <code>[3]</code></p></li><li><p><code>fill_missing(<em>empty</em>, "abc")</code> =&gt; <code>"abc"</code></p></li><li><p><code>fill_missing("abc", [1])</code> =&gt; <code>["abc"]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="remove">Remove</h3><p>Remove all occurrences of the 2<sup>nd</sup> expression&#8217;s value from the values of the 1<sup>st</sup> expression.
 Both expressions must be of the same type after implicit casting is done.</p>
-<div class="dlist"><dl><dt><code>remove(&lt; T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><code>remove([1,2,3,2], 2)</code> =&gt; <code>[1, 3]</code></li><li><code>remove("1", 1)</code> =&gt; <code><em>empty</em></code></li><li><code>remove(1, "abc")</code> =&gt; <code>"1"</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>remove(&lt; T &gt;, &lt; <em>Single</em> T &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><p><code>remove([1,2,3,2], 2)</code> =&gt; <code>[1, 3]</code></p></li><li><p><code>remove("1", 1)</code> =&gt; <code><em>empty</em></code></p></li><li><p><code>remove(1, "abc")</code> =&gt; <code>"1"</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="filter">Filter</h3><p>Return the values of the 1<sup>st</sup> expression if the value of the 2<sup>nd</sup> expression is <code>true</code>, otherwise return no values.</p>
-<div class="dlist"><dl><dt><code>filter(&lt; T &gt;, &lt; <em>Single Boolean</em> &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><code>filter([1,2,3], true)</code> =&gt; <code>[1,2,3]</code></li><li><code>filter([1,2,3], false)</code> =&gt; <code>[]</code></li><li><code>filter("abc", false)</code> =&gt; <code><em>empty</em></code></li><li><code>filter("abc", true)</code> =&gt; <code>1</code></li></ul></dd></dl></div></section></section>
+<div class="dlist"><dl><dt><code>filter(&lt; T &gt;, &lt; <em>Single Boolean</em> &gt;)</code> =&gt; <code>&lt; T &gt;</code></dt><dd><ul><li><p><code>filter([1,2,3], true)</code> =&gt; <code>[1,2,3]</code></p></li><li><p><code>filter([1,2,3], false)</code> =&gt; <code>[]</code></p></li><li><p><code>filter("abc", false)</code> =&gt; <code><em>empty</em></code></p></li><li><p><code>filter("abc", true)</code> =&gt; <code>1</code></p></li></ul></dd></dl></div></section></section>
 <section class="sect1"><h2 id="date">Date</h2><section class="sect2"><h3 id="date-parse">Date Parse</h3><p>Explicitly converts the values of a <code>String</code> or <code>Long</code> expression into <code>Dates</code>.</p>
-<div class="dlist"><dl><dt><code>date(&lt; <em>String</em> &gt;)</code> =&gt; <code>&lt; <em>Date</em> &gt;</code></dt><dd><ul><li><code>date('1800-01-02')</code> =&gt; <code>1800-01-02T&#8203;00:00:00Z</code></li><li><code>date(['1800-01-02', '2016-05-23'])</code> =&gt; <code>[1800-01-02T&#8230;&#8203;, 2016-05-23T&#8230;&#8203;]</code></li></ul></dd><dt><code>date(&lt; <em>Long</em> &gt;)</code> =&gt; <code>&lt; <em>Date</em> &gt;</code></dt><dd><ul><li><code>date(1232343246648)</code> =&gt; <code>2009-01-19T&#8203;05:34:06Z</code></li><li><code>date([1232343246648, 223234324664])</code> =&gt; <code>[2009-01-19T&#8230;&#8203;, 1977-01-27T&#8230;&#8203;]</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>date(&lt; <em>String</em> &gt;)</code> =&gt; <code>&lt; <em>Date</em> &gt;</code></dt><dd><ul><li><p><code>date('1800-01-02')</code> =&gt; <code>1800-01-02T&#8203;00:00:00Z</code></p></li><li><p><code>date(['1800-01-02', '2016-05-23'])</code> =&gt; <code>[1800-01-02T&#8230;&#8203;, 2016-05-23T&#8230;&#8203;]</code></p></li></ul></dd><dt><code>date(&lt; <em>Long</em> &gt;)</code> =&gt; <code>&lt; <em>Date</em> &gt;</code></dt><dd><ul><li><p><code>date(1232343246648)</code> =&gt; <code>2009-01-19T&#8203;05:34:06Z</code></p></li><li><p><code>date([1232343246648, 223234324664])</code> =&gt; <code>[2009-01-19T&#8230;&#8203;, 1977-01-27T&#8230;&#8203;]</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="analytics-date-math">Date Math</h3><p>Compute the given date math strings for the values of a <code>Date</code> expression. The date math strings <strong>must</strong> be <a href="analytics-expression-sources.html#strings">constant</a>.</p>
-<div class="dlist"><dl><dt><code>date_math(&lt; <em>Date</em> &gt;, &lt; <em>Constant String</em> &gt;&#8230;&#8203;)</code> =&gt; <code>&lt; <em>Date</em> &gt;</code></dt><dd><ul><li><code>date_math(1800-04-15, '+1DAY', '-1MONTH')</code> =&gt; <code>1800-03-16</code></li><li><code>date_math([1800-04-15,2016-05-24], '+1DAY', '-1MONTH')</code> =&gt; <code>[1800-03-16, 2016-04-25]</code></li></ul></dd></dl></div></section></section>
+<div class="dlist"><dl><dt><code>date_math(&lt; <em>Date</em> &gt;, &lt; <em>Constant String</em> &gt;&#8230;&#8203;)</code> =&gt; <code>&lt; <em>Date</em> &gt;</code></dt><dd><ul><li><p><code>date_math(1800-04-15, '+1DAY', '-1MONTH')</code> =&gt; <code>1800-03-16</code></p></li><li><p><code>date_math([1800-04-15,2016-05-24], '+1DAY', '-1MONTH')</code> =&gt; <code>[1800-03-16, 2016-04-25]</code></p></li></ul></dd></dl></div></section></section>
 <section class="sect1"><h2 id="string">String</h2><section class="sect2"><h3 id="explicit-casting">Explicit Casting</h3><p>Explicitly casts the expression to a <code>String</code> expression.</p>
-<div class="dlist"><dl><dt><code>string(&lt; <em>String</em> &gt;)</code> =&gt; <code>&lt; <em>String</em> &gt;</code></dt><dd><ul><li><code>string(1)</code> =&gt; <code>'1'</code></li><li><code>string([1.5, -2.0])</code> =&gt; <code>['1.5', '-2.0']</code></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>string(&lt; <em>String</em> &gt;)</code> =&gt; <code>&lt; <em>String</em> &gt;</code></dt><dd><ul><li><p><code>string(1)</code> =&gt; <code>'1'</code></p></li><li><p><code>string([1.5, -2.0])</code> =&gt; <code>['1.5', '-2.0']</code></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="concatenation">Concatenation</h3><p>Concatenations the values of the <code>String</code> expression(s) together.</p>
-<div class="dlist"><dl><dt><code>concat(&lt; <em>Multi String</em> &gt;)</code> =&gt; <code>&lt; <em>Single String</em> &gt;</code></dt><dd><ul><li><code>concat(['a','b','c'])</code> =&gt; <code>'abc'</code></li></ul></dd><dt><code>concat(&lt; <em>Single String</em> &gt;, &lt; <em>Multi String</em> &gt;)</code> =&gt; <code>&lt; <em>Multi String</em> &gt;</code></dt><dd><ul><li><code>concat(1, ['a','b','c'])</code> =&gt; <code>['1a','1b','1c']</code></li></ul></dd><dt><code>concat(&lt; <em>Multi String</em> &gt;, &lt; <em>Single String</em> &gt;)</code> =&gt; <code>&lt; <em>Multi String</em> &gt;</code></dt><dd><ul><li><code>concat(['a','b','c'], 1)</code> =&gt; <code>['a1','b1','c1']</code></li></ul></dd><dt><code>concat(&lt; <em>Single String</em> &gt;&#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single String</em> &gt;</code></dt><dd><ul><li><code>concat('a','b','c')</code> =&gt; <code>'abc'</code></li><li><code>concat('a',<em>empty</em>,'c')</code> =&gt; <code>'ac'</code><br>
-<em>Empty values are ignored</em></li></ul></dd></dl></div></section>
+<div class="dlist"><dl><dt><code>concat(&lt; <em>Multi String</em> &gt;)</code> =&gt; <code>&lt; <em>Single String</em> &gt;</code></dt><dd><ul><li><p><code>concat(['a','b','c'])</code> =&gt; <code>'abc'</code></p></li></ul></dd><dt><code>concat(&lt; <em>Single String</em> &gt;, &lt; <em>Multi String</em> &gt;)</code> =&gt; <code>&lt; <em>Multi String</em> &gt;</code></dt><dd><ul><li><p><code>concat(1, ['a','b','c'])</code> =&gt; <code>['1a','1b','1c']</code></p></li></ul></dd><dt><code>concat(&lt; <em>Multi String</em> &gt;, &lt; <em>Single String</em> &gt;)</code> =&gt; <code>&lt; <em>Multi String</em> &gt;</code></dt><dd><ul><li><p><code>concat(['a','b','c'], 1)</code> =&gt; <code>['a1','b1','c1']</code></p></li></ul></dd><dt><code>concat(&lt; <em>Single String</em> &gt;&#8230;&#8203;)</code> =&gt; <code>&lt; <em>Single String</em> &gt;</code></dt><dd><ul><li><p><code>concat('a','b','c')</code> =&gt; <code>'abc'</code></p></li><li><p><code>concat('a',<em>empty</em>,'c')</code> =&
 gt; <code>'ac'</code><br>
+<em>Empty values are ignored</em></p></li></ul></dd></dl></div></section>
 <section class="sect2"><h3 id="separated-concatenation">Separated Concatenation</h3><p>Concatenations the values of the <code>String</code> expression(s) together using the given <a href="analytics-expression-sources.html#strings">constant string</a> value as a separator.</p>
-<div class="dlist"><dl><dt><code>concat_sep(&lt; <em>Constant String</em> &gt;, &lt; <em>Multi String</em> &gt;)</code> =&gt; <code>&lt; <em>Single String</em> &gt;</code></dt><dd><ul><li><code>concat_sep('-', ['a','b'])</code> =&gt; <code>'a-b'</code></li></ul></dd><dt><code>concat_sep(&lt; <em>Constant String</em> &gt;, &lt; <em>Single String</em> &gt;, &lt; <em>Multi String</em> &gt;)</code> =&gt; <code>&lt; <em>Multi String</em> &gt;</code></dt><dd><ul><li><code>concat_sep(2,1,['a','b'])</code> =&gt; <code>['12a','12b']</code></li></ul></dd><dt><code>concat_sep(&lt; <em>Constant String</em> &gt;, &lt; <em>Multi String</em> &gt;, &lt; <em>Single String</em> &gt;)</code> =&gt; <code>&lt; <em>Multi String</em> &gt;</code></dt><dd><ul><li><code>concat_sep(2,['a','b'],1)</code> =&gt; <code>['a21','b21']</code></li><li><code>concat_sep('-','a',2,3)</code> =&gt; <code>'a-2-3'</code></li><li><code>concat_sep(';','a',<em>empty</em>,'c')</code> =&gt; <code>'a;c'</code><br>
-<em>Empty values are ignored</em></li></ul></dd></dl></div></section></section>
+<div class="dlist"><dl><dt><code>concat_sep(&lt; <em>Constant String</em> &gt;, &lt; <em>Multi String</em> &gt;)</code> =&gt; <code>&lt; <em>Single String</em> &gt;</code></dt><dd><ul><li><p><code>concat_sep('-', ['a','b'])</code> =&gt; <code>'a-b'</code></p></li></ul></dd><dt><code>concat_sep(&lt; <em>Constant String</em> &gt;, &lt; <em>Single String</em> &gt;, &lt; <em>Multi String</em> &gt;)</code> =&gt; <code>&lt; <em>Multi String</em> &gt;</code></dt><dd><ul><li><p><code>concat_sep(2,1,['a','b'])</code> =&gt; <code>['12a','12b']</code></p></li></ul></dd><dt><code>concat_sep(&lt; <em>Constant String</em> &gt;, &lt; <em>Multi String</em> &gt;, &lt; <em>Single String</em> &gt;)</code> =&gt; <code>&lt; <em>Multi String</em> &gt;</code></dt><dd><ul><li><p><code>concat_sep(2,['a','b'],1)</code> =&gt; <code>['a21','b21']</code></p></li><li><p><code>concat_sep('-','a',2,3)</code> =&gt; <code>'a-2-3'</code></p></li><li><p><code>concat_sep(';','a',<em>empty</em>,'c')</code> =&gt; <code>'
 a;c'</code><br>
+<em>Empty values are ignored</em></p></li></ul></dd></dl></div></section></section>
   </section>
 
 
@@ -1824,7 +1819,7 @@ Both expressions must be of the same typ
             <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/analytics-reduction-functions.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/analytics-reduction-functions.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/analytics-reduction-functions.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Analytics Reduction Functions | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Analytics Reduction Functions | 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="analytics-reduction-functions">
+<body class="" id="analytics-reduction-functions">
 <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 @@ The ordinal, given as the 1<sup>st</sup>
             <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/analytics.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/analytics.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/analytics.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Analytics Component | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Analytics Component | 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="analytics">
+<body class="" id="analytics">
 <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-->
@@ -1782,29 +1777,29 @@ The <code>functions</code> parameter is
 </span><span style="background-color: #f8f8f8">}</span></code></pre></code></pre></figure></section>
 <section class="sect1"><h2 id="expressions">Expressions</h2><p>Expressions are the way to request pieces of information from the analytics component. These are the statistical expressions that you want computed and returned in your response.</p>
 <section class="sect2"><h3 id="constructing-an-expression">Constructing an Expression</h3><section class="sect3"><h4 id="expression-components">Expression Components</h4><p>An expression is built using fields, constants, mapping functions and reduction functions. The ways that these can be defined are described below.</p>
-<div class="dlist"><dl><dt>Sources</dt><dd><ul><li>Constants: The values defined in the expression.
-The supported constant types are described in the <a href="analytics-expression-sources.html#constants">Analytics Expression Source Reference</a>.</li><li>Fields: Solr fields that are read from the index.
-The supported fields are listed in the <a href="analytics-expression-sources.html#supported-field-types">Analytics Expression Source Reference</a>.</li></ul></dd><dt>Mapping Functions</dt><dd>Mapping functions map values for each Solr Document or Reduction.
-The provided mapping functions are detailed in the <a href="analytics-mapping-functions.html#analytics-mapping-functions">Analytics Mapping Function Reference</a>.<ul><li>Unreduced Mapping: Mapping a Field with another Field or Constant returns a value for every Solr Document.
-Unreduced mapping functions can take fields, constants as well as other unreduced mapping functions as input.</li><li>Reduced Mapping: Mapping a Reduction Function with another Reduction Function or Constant returns a single value.</li></ul></dd><dt>Reduction Functions</dt><dd>Functions that reduce the values of sources and/or unreduced mapping functions for every Solr Document to a single value.
+<div class="dlist"><dl><dt>Sources</dt><dd><ul><li><p>Constants: The values defined in the expression.
+The supported constant types are described in the <a href="analytics-expression-sources.html#constants">Analytics Expression Source Reference</a>.</p></li><li><p>Fields: Solr fields that are read from the index.
+The supported fields are listed in the <a href="analytics-expression-sources.html#supported-field-types">Analytics Expression Source Reference</a>.</p></li></ul></dd><dt>Mapping Functions</dt><dd>Mapping functions map values for each Solr Document or Reduction.
+The provided mapping functions are detailed in the <a href="analytics-mapping-functions.html#analytics-mapping-functions">Analytics Mapping Function Reference</a>.<ul><li><p>Unreduced Mapping: Mapping a Field with another Field or Constant returns a value for every Solr Document.
+Unreduced mapping functions can take fields, constants as well as other unreduced mapping functions as input.</p></li><li><p>Reduced Mapping: Mapping a Reduction Function with another Reduction Function or Constant returns a single value.</p></li></ul></dd><dt>Reduction Functions</dt><dd>Functions that reduce the values of sources and/or unreduced mapping functions for every Solr Document to a single value.
 The provided reduction functions are detailed in the <a href="analytics-reduction-functions.html#analytics-reduction-functions">Analytics Reduction Function Reference</a>.</dd></dl></div></section>
 <section class="sect3"><h4 id="component-ordering">Component Ordering</h4><p>The expression components must be used in the following order to create valid expressions.</p>
 <div class="olist arabic"><ol class="arabic"><li>Reduced Mapping Function<ol class="loweralpha" type="a"><li>Constants</li><li>Reduction Function<ol class="lowerroman" type="i"><li>Sources</li><li>Unreduced Mapping Function<ol class="upperalpha" type="A"><li>Sources</li><li>Unreduced Mapping Function</li></ol></li></ol></li><li>Reduced Mapping Function</li></ol></li><li>Reduction Function</li></ol></div>
 <p>This ordering is based on the following rules:</p>
-<div class="ulist"><ul><li>No reduction function can be an argument of another reduction function.
-Since all reduction is done together in one step, one reduction function cannot rely on the result of another.</li><li>No fields can be left unreduced, since the analytics component cannot return a list of values for an expression (one for every document).
-Every expression must be reduced to a single value.</li><li>Mapping functions are not necessary when creating functions, however as many nested mappings as needed can be used.</li><li>Nested mapping functions must be the same type, so either both must be unreduced or both must be reduced.
-A reduced mapping function cannot take an unreduced mapping function as a parameter and vice versa.</li></ul></div></section>
+<div class="ulist"><ul><li><p>No reduction function can be an argument of another reduction function.
+Since all reduction is done together in one step, one reduction function cannot rely on the result of another.</p></li><li><p>No fields can be left unreduced, since the analytics component cannot return a list of values for an expression (one for every document).
+Every expression must be reduced to a single value.</p></li><li><p>Mapping functions are not necessary when creating functions, however as many nested mappings as needed can be used.</p></li><li><p>Nested mapping functions must be the same type, so either both must be unreduced or both must be reduced.
+A reduced mapping function cannot take an unreduced mapping function as a parameter and vice versa.</p></li></ul></div></section>
 <section class="sect3"><h4 id="example-construction">Example Construction</h4><p>With the above definitions and ordering, an example expression can be broken up into its components:</p>
 <div class="listingblock"><pre class="rouge highlight"><code class="language-bash" data-lang="bash"><pre class="highlight"><code>div<span style="color: #000000;font-weight: bold">(</span>sum<span style="color: #000000;font-weight: bold">(</span>a,fill_missing<span style="color: #000000;font-weight: bold">(</span>b,0<span style="color: #000000;font-weight: bold">))</span>,add<span style="color: #000000;font-weight: bold">(</span>10.5,count<span style="color: #000000;font-weight: bold">(</span>mult<span style="color: #000000;font-weight: bold">(</span>a,c<span style="color: #000000;font-weight: bold">)))))</span></code></pre></code></pre></div>
 <p>As a whole, this is a reduced mapping function. The <code>div</code> function is a reduced mapping function since it is a <a href="analytics-mapping-functions.html#division">provided mapping function</a> and has reduced arguments.</p>
 <p>If we break down the expression further:</p>
-<div class="ulist"><ul><li><code>sum(a,fill_missing(b,0))</code>: Reduction Function<br>
-<code>sum</code> is a <a href="analytics-reduction-functions.html#sum">provided reduction function</a>.<ul><li><code>a</code>: Field</li><li><code>fill_missing(b,0)</code>: Unreduced Mapping Function<br>
-<code>fill_missing</code> is an unreduced mapping function since it is a <a href="analytics-mapping-functions.html#fill-missing">provided mapping function</a> and has a field argument.<ul><li><code>b</code>: Field</li><li><code>0</code>: Constant</li></ul></li></ul></li><li><code>add(10.5,count(mult(a,c)))</code>: Reduced Mapping Function<br>
-<code>add</code> is a reduced mapping function since it is a <a href="analytics-mapping-functions.html#addition">provided mapping function</a> and has a reduction function argument.<ul><li><code>10.5</code>: Constant</li><li><code>count(mult(a,c))</code>: Reduction Function<br>
-<code>count</code> is a  <a href="analytics-reduction-functions.html#count">provided reduction function</a><ul><li><code>mult(a,c)</code>: Unreduced Mapping Function<br>
-<code>mult</code> is an unreduced mapping function since it is a <a href="analytics-mapping-functions.html#multiplication">provided mapping function</a> and has two field arguments.<ul><li><code>a</code>: Field</li><li><code>c</code>: Field</li></ul></li></ul></li></ul></li></ul></div></section></section>
+<div class="ulist"><ul><li><p><code>sum(a,fill_missing(b,0))</code>: Reduction Function<br>
+<code>sum</code> is a <a href="analytics-reduction-functions.html#sum">provided reduction function</a>.<ul><li><p><code>a</code>: Field</p></li><li><p><code>fill_missing(b,0)</code>: Unreduced Mapping Function<br>
+<code>fill_missing</code> is an unreduced mapping function since it is a <a href="analytics-mapping-functions.html#fill-missing">provided mapping function</a> and has a field argument.<ul><li><p><code>b</code>: Field</p></li><li><p><code>0</code>: Constant</p></li></ul></p></li></ul></p></li><li><p><code>add(10.5,count(mult(a,c)))</code>: Reduced Mapping Function<br>
+<code>add</code> is a reduced mapping function since it is a <a href="analytics-mapping-functions.html#addition">provided mapping function</a> and has a reduction function argument.<ul><li><p><code>10.5</code>: Constant</p></li><li><p><code>count(mult(a,c))</code>: Reduction Function<br>
+<code>count</code> is a  <a href="analytics-reduction-functions.html#count">provided reduction function</a><ul><li><p><code>mult(a,c)</code>: Unreduced Mapping Function<br>
+<code>mult</code> is an unreduced mapping function since it is a <a href="analytics-mapping-functions.html#multiplication">provided mapping function</a> and has two field arguments.<ul><li><p><code>a</code>: Field</p></li><li><p><code>c</code>: Field</p></li></ul></p></li></ul></p></li></ul></p></li></ul></div></section></section>
 <section class="sect2"><h3 id="expression-cardinality-multi-valued-and-single-valued">Expression Cardinality (Multi-Valued and Single-Valued)</h3><p>The root of all multi-valued expressions are multi-valued fields. Single-valued expressions can be started with constants or single-valued fields.
 All single-valued expressions can be treated as multi-valued expressions that contain one value.</p>
 <p>Single-valued expressions and multi-valued expressions can be used together in many mapping functions, as well as multi-valued expressions being used alone, and many single-valued expressions being used together. For example:</p>
@@ -1886,9 +1881,9 @@ Functions can take a variable length of
 There is no definite number of arguments requested for the variable length parameter, therefore the clothing expressions can use 3 and the kitchen expressions can use 2.
 When the <code>sale()</code> function is called, <code>costs</code> is expanded to the arguments given.</p>
 <p>Therefore in the above request, inside of the <code>sale</code> function:</p>
-<div class="ulist"><ul><li><code>add(costs)</code></li></ul></div>
+<div class="ulist"><ul><li><p><code>add(costs)</code></p></li></ul></div>
 <p>is expanded to both of the following:</p>
-<div class="ulist"><ul><li><code>add(material, tariff, tax)</code></li><li><code>add(material, construction)</code></li></ul></div></section>
+<div class="ulist"><ul><li><p><code>add(material, tariff, tax)</code></p></li><li><p><code>add(material, construction)</code></p></li></ul></div></section>
 <section class="sect2"><h3 id="for-each-functions">For-Each Functions</h3><div class="admonitionblock caution">
 <table>
 <tr>
@@ -1962,7 +1957,7 @@ Groupings must have both <code>expressio
 <section class="sect2"><h3 id="facet-sorting">Facet Sorting</h3><p>Some Analytics facets allow for complex sorting of their results.
 The two current sortable facets are <a href="#value-facets">Analytic Value Facets</a> and <a href="#analytic-pivot-facets">Analytic Pivot Facets</a>.</p>
 <section class="sect3"><h4 id="parameters">Parameters</h4><div class="dlist"><dl><dt><code>criteria</code></dt><dd><p>The list of criteria to sort the facet by.</p><p>It takes the following parameters:</p>
-<dl><dt><code>type</code></dt><dd>The type of sort. There are two possible values:<ul><li><code>expression</code>: Sort by the value of an expression defined in the same grouping.</li><li><code>facetvalue</code>: Sort by the string-representation of the facet value.</li></ul></dd><dt><code>Direction</code></dt><dd><em>(Optional)</em> The direction to sort.<ul><li><code>ascending</code> <em>(Default)</em></li><li><code>descending</code></li></ul></dd><dt><code>expression</code></dt><dd>When <code>type = expression</code>, the name of an expression defined in the same grouping.</dd></dl></dd><dt><code>limit</code></dt><dd>Limit the number of returned facet values to the top <em>N</em>.  <em>(Optional)</em></dd><dt><code>offset</code></dt><dd>When a limit is set, skip the top <em>N</em> facet values. <em>(Optional)</em></dd></dl></div>
+<dl><dt><code>type</code></dt><dd>The type of sort. There are two possible values:<ul><li><p><code>expression</code>: Sort by the value of an expression defined in the same grouping.</p></li><li><p><code>facetvalue</code>: Sort by the string-representation of the facet value.</p></li></ul></dd><dt><code>Direction</code></dt><dd><em>(Optional)</em> The direction to sort.<ul><li><p><code>ascending</code> <em>(Default)</em></p></li><li><p><code>descending</code></p></li></ul></dd><dt><code>expression</code></dt><dd>When <code>type = expression</code>, the name of an expression defined in the same grouping.</dd></dl></dd><dt><code>limit</code></dt><dd>Limit the number of returned facet values to the top <em>N</em>.  <em>(Optional)</em></dd><dt><code>offset</code></dt><dd>When a limit is set, skip the top <em>N</em> facet values. <em>(Optional)</em></dd></dl></div>
 <figure class="listingblock"><figcaption>Example Sort Request</figcaption>
 <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">"criteria"</span><span style="color: #bbbbbb"> </span><span style="background-color: #f8f8f8">:</span><span style="color: #bbbbbb"> </span><span style="background-color: #f8f8f8">[</span><span style="color: #bbbbbb">
@@ -1982,7 +1977,7 @@ The two current sortable facets are <a h
 <section class="sect2"><h3 id="value-facets">Value Facets</h3><p>Value Facets are used to group documents by the value of a mapping expression applied to each document.
 Mapping expressions are expressions that do not include a reduction function.</p>
 <p>For more information, refer to the <a href="#expression-components">Expressions section</a>.</p>
-<div class="ulist"><ul><li><code>mult(quantity, sum(price, tax))</code>: breakup documents by the revenue generated</li><li><code>fillmissing(state, "N/A")</code>: breakup documents by state, where N/A is used when the document doesn&#8217;t contain a state</li></ul></div>
+<div class="ulist"><ul><li><p><code>mult(quantity, sum(price, tax))</code>: breakup documents by the revenue generated</p></li><li><p><code>fillmissing(state, "N/A")</code>: breakup documents by state, where N/A is used when the document doesn&#8217;t contain a state</p></li></ul></div>
 <p>Value Facets can be sorted.</p>
 <section class="sect3"><h4 id="parameters-2">Parameters</h4><div class="dlist"><dl><dt><code>expression</code></dt><dd>The expression to choose a facet bucket for each document.</dd><dt><code>sort</code></dt><dd>A <a href="#facet-sorting">sort</a> for the results of the pivot.</dd></dl></div>
 <div class="admonitionblock note">
@@ -2120,7 +2115,7 @@ The <code>sort</code> parameter within t
 The inputs for analytics range facets are identical to those used for Solr range facets.
 Refer to the <a href="faceting.html#range-faceting">Range Facet documentation</a> for additional questions regarding use.</p>
 <section class="sect3"><h4 id="parameters-4">Parameters</h4><div class="dlist"><dl><dt><code>field</code></dt><dd>Field to be faceted over</dd><dt><code>start</code></dt><dd>The bottom end of the range</dd><dt><code>end</code></dt><dd>The top end of the range</dd><dt><code>gap</code></dt><dd>A list of range gaps to generate facet buckets. If the buckets do not add up to fit the <code>start</code> to <code>end</code> range,
-then the last <code>gap</code> value will repeated as many times as needed to fill any unused range.</dd><dt><code>hardend</code></dt><dd>Whether to cutoff the last facet bucket range at the <code>end</code> value if it spills over. Defaults to <code>false</code>.</dd><dt><code>include</code></dt><dd>The boundaries to include in the facet buckets. Defaults to <code>lower</code>.<ul><li><code>lower</code> - All gap-based ranges include their lower bound.</li><li><code>upper</code> - All gap-based ranges include their upper bound.</li><li><code>edge</code> - The first and last gap ranges include their edge bounds (lower for the first one, upper for the last one) even if the corresponding upper/lower option is not specified.</li><li><code>outer</code> - The <code>before</code> and <code>after</code> ranges will be inclusive of their bounds, even if the first or last ranges already include those boundaries.</li><li><code>all</code> - Includes all options: <code>lower</code>, <code>upper
 </code>, <code>edge</code>, and <code>outer</code></li></ul></dd><dt><code>others</code></dt><dd>Additional ranges to include in the facet. Defaults to <code>none</code>.<ul><li><code>before</code> - All records with field values lower then lower bound of the first range.</li><li><code>after</code> - All records with field values greater then the upper bound of the last range.</li><li><code>between</code> - All records with field values between the lower bound of the first range and the upper bound of the last range.</li><li><code>none</code> - Include facet buckets for none of the above.</li><li><code>all</code> - Include facet buckets for <code>before</code>, <code>after</code> and <code>between</code>.</li></ul></dd></dl></div>
+then the last <code>gap</code> value will repeated as many times as needed to fill any unused range.</dd><dt><code>hardend</code></dt><dd>Whether to cutoff the last facet bucket range at the <code>end</code> value if it spills over. Defaults to <code>false</code>.</dd><dt><code>include</code></dt><dd>The boundaries to include in the facet buckets. Defaults to <code>lower</code>.<ul><li><p><code>lower</code> - All gap-based ranges include their lower bound.</p></li><li><p><code>upper</code> - All gap-based ranges include their upper bound.</p></li><li><p><code>edge</code> - The first and last gap ranges include their edge bounds (lower for the first one, upper for the last one) even if the corresponding upper/lower option is not specified.</p></li><li><p><code>outer</code> - The <code>before</code> and <code>after</code> ranges will be inclusive of their bounds, even if the first or last ranges already include those boundaries.</p></li><li><p><code>all</code> - Includes all options: 
 <code>lower</code>, <code>upper</code>, <code>edge</code>, and <code>outer</code></p></li></ul></dd><dt><code>others</code></dt><dd>Additional ranges to include in the facet. Defaults to <code>none</code>.<ul><li><p><code>before</code> - All records with field values lower then lower bound of the first range.</p></li><li><p><code>after</code> - All records with field values greater then the upper bound of the last range.</p></li><li><p><code>between</code> - All records with field values between the lower bound of the first range and the upper bound of the last range.</p></li><li><p><code>none</code> - Include facet buckets for none of the above.</p></li><li><p><code>all</code> - Include facet buckets for <code>before</code>, <code>after</code> and <code>between</code>.</p></li></ul></dd></dl></div>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -2251,7 +2246,7 @@ The <code>hardend</code>, <code>include<
             <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/analyzers.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/analyzers.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/analyzers.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Analyzers | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Analyzers | 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="analyzers">
+<body class="" id="analyzers">
 <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-->
@@ -1765,7 +1760,7 @@ and TokenFilters</p>
             <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/audit-logging.html
==============================================================================
--- websites/production/lucene/content/solr/guide/8_6/audit-logging.html (original)
+++ websites/production/lucene/content/solr/guide/8_6/audit-logging.html Wed Jul 15 16:52:36 2020
@@ -8,7 +8,7 @@
 <meta name="description" content="">
 <meta name="keywords" content=" ">
 
-<title>Audit Logging | Apache Solr Reference Guide 8.6-DRAFT</title>
+<title>Audit Logging | 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="audit-logging">
+<body class="" id="audit-logging">
 <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-->
@@ -1712,7 +1707,7 @@ Audit loggers are pluggable to suit any
 <div class="colist arabic"><table><tr><td><i class="conum" data-value="1"></i><b>1</b></td><td>The first will mute all events from client IP <code>192.168.0.10</code></td></tr><tr><td><i class="conum" data-value="2"></i><b>2</b></td><td>The second rule will mute collection admin requests with <code>action=LIST</code></td></tr><tr><td><i class="conum" data-value="3"></i><b>3</b></td><td>The third rule will mute collection admin requests for the collection named <code>test</code></td></tr></table></div>
 <p>Note how you can mix single string rules with lists of rules that must all match:</p>
 <p><strong>Valid mute rules are:</strong></p>
-<div class="ulist"><ul><li><code>type:&lt;request-type&gt;</code> (request-type by name: <code>ADMIN</code>, <code>SEARCH</code>, <code>UPDATE</code>, <code>STREAMING</code>, <code>UNKNOWN</code>)</li><li><code>collection:&lt;collection-name&gt;</code> (collection by name)</li><li><code>user:&lt;userid&gt;</code> (user by userid)</li><li><code>path:&lt;/path/to/handler&gt;</code> (request path relative to <code>/solr</code> or for search/update requests relative to collection. Path is prefix matched, i.e., <code>/admin</code> will mute any sub path as well.</li><li><code>ip:&lt;ip-address&gt;</code> (IPv4-address)</li><li><code>param:&lt;param&gt;=&lt;value&gt;</code> (request parameter)</li></ul></div></section>
+<div class="ulist"><ul><li><p><code>type:&lt;request-type&gt;</code> (request-type by name: <code>ADMIN</code>, <code>SEARCH</code>, <code>UPDATE</code>, <code>STREAMING</code>, <code>UNKNOWN</code>)</p></li><li><p><code>collection:&lt;collection-name&gt;</code> (collection by name)</p></li><li><p><code>user:&lt;userid&gt;</code> (user by userid)</p></li><li><p><code>path:&lt;/path/to/handler&gt;</code> (request path relative to <code>/solr</code> or for search/update requests relative to collection. Path is prefix matched, i.e., <code>/admin</code> will mute any sub path as well.</p></li><li><p><code>ip:&lt;ip-address&gt;</code> (IPv4-address)</p></li><li><p><code>param:&lt;param&gt;=&lt;value&gt;</code> (request parameter)</p></li></ul></div></section>
 <section class="sect2"><h3 id="chaining-multiple-loggers">Chaining Multiple Loggers</h3><p>Using the <code>MultiDestinationAuditLogger</code> you can configure multiple audit logger plugins in a chain, to log to multiple destinations, as follows:</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">"auditlogging"</span><span style="background-color: #f8f8f8">:{</span><span style="color: #bbbbbb">
@@ -1726,7 +1721,7 @@ Audit loggers are pluggable to suit any
   </span><span style="background-color: #f8f8f8">}</span><span style="color: #bbbbbb">
 </span><span style="background-color: #f8f8f8">}</span></code></pre></code></pre></div></section></section>
 <section class="sect1"><h2 id="metrics">Metrics</h2><p>AuditLoggerPlugins record metrics about count and timing of log requests, as well as queue size for async loggers. The metrics keys are all recorded on the <code>SECURITY</code> category, and each metric name are prefixed with a scope of <code>/auditlogging</code> and the class name of the logger, e.g., <code>SolrLogAuditLoggerPlugin</code>. The individual metrics are:</p>
-<div class="ulist"><ul><li><code>count</code> (type: meter. Records number and rate of audit logs done)</li><li><code>errors</code> (type: meter. Records number and rate of errors)</li><li><code>lost</code> (type: meter. Records number and rate of events lost due to queue full and <code>blockAsync=false</code>)</li><li><code>requestTimes</code> (type: timer. Records latency and perceniles for logging performance)</li><li><code>totalTime</code> (type: counter. Records total time spent)</li><li><code>queueCapacity</code> (type: gauge. Records the max size of the async logging queue)</li><li><code>queueSize</code> (type: gauge. Records the number of events currently waiting in the queue)</li><li><code>queuedTime</code> (type: timer. Records the amount of time events waited in queue. Adding this with requestTimes you get total time from event to logging complete)</li><li><code>async</code> (type: gauge. Tells whether this logger is in async mode)</li></ul></div>
+<div class="ulist"><ul><li><p><code>count</code> (type: meter. Records number and rate of audit logs done)</p></li><li><p><code>errors</code> (type: meter. Records number and rate of errors)</p></li><li><p><code>lost</code> (type: meter. Records number and rate of events lost due to queue full and <code>blockAsync=false</code>)</p></li><li><p><code>requestTimes</code> (type: timer. Records latency and perceniles for logging performance)</p></li><li><p><code>totalTime</code> (type: counter. Records total time spent)</p></li><li><p><code>queueCapacity</code> (type: gauge. Records the max size of the async logging queue)</p></li><li><p><code>queueSize</code> (type: gauge. Records the number of events currently waiting in the queue)</p></li><li><p><code>queuedTime</code> (type: timer. Records the amount of time events waited in queue. Adding this with requestTimes you get total time from event to logging complete)</p></li><li><p><code>async</code> (type: gauge. Tells whether this logger
  is in async mode)</p></li></ul></div>
 <div class="admonitionblock tip">
 <table>
 <tr>
@@ -1768,7 +1763,7 @@ If you expect a very high request rate a
             <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>