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 2017/05/09 19:22:32 UTC

svn commit: r1011953 [16/32] - in /websites/production/lucene/content/solr/guide/test-10290: ./ fonts/mplus1mn/ images/a-quick-overview/ images/other-parsers/

Modified: websites/production/lucene/content/solr/guide/test-10290/learning-to-rank.html
==============================================================================
--- websites/production/lucene/content/solr/guide/test-10290/learning-to-rank.html (original)
+++ websites/production/lucene/content/solr/guide/test-10290/learning-to-rank.html Tue May  9 19:22:29 2017
@@ -1280,7 +1280,10 @@ $('#toc').on('click', 'a', function() {
   <div id="preamble">
 <div class="sectionbody">
 <div class="paragraph">
-<p>With the <strong>Learning To Rank</strong> (or <strong>LTR</strong> for short) contrib module you can configure and run machine learned ranking models in Solr. The module also supports feature extraction inside Solr. The only thing you need to do outside Solr is train your own ranking model.</p>
+<p>With the <strong>Learning To Rank</strong> (or <strong>LTR</strong> for short) contrib module you can configure and run machine learned ranking models in Solr.</p>
+</div>
+<div class="paragraph">
+<p>The module also supports feature extraction inside Solr. The only thing you need to do outside Solr is train your own ranking model.</p>
 </div>
 </div>
 </div>
@@ -1441,13 +1444,13 @@ $('#toc').on('click', 'a', function() {
 </table>
 </div>
 <div class="sect3">
-<h4 id="LearningToRank-Featureextraction">Feature extraction</h4>
+<h4 id="LearningToRank-Featureextraction">Feature Extraction</h4>
 <div class="paragraph">
 <p>The ltr contrib module includes a <a href="transforming-result-documents.html#transforming-result-documents">[features</a> transformer] to support the calculation and return of feature values for <a href="https://en.wikipedia.org/wiki/Feature_extraction">feature extraction</a> purposes including and especially when you do not yet have an actual reranking model.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="LearningToRank-Featureselectionandmodeltraining">Feature selection and model training</h4>
+<h4 id="LearningToRank-Featureselectionandmodeltraining">Feature Selection and Model Training</h4>
 <div class="paragraph">
 <p>Feature selection and model training take place offline and outside Solr. The ltr contrib module supports two generalized forms of models as well as custom models. Each model class&#8217;s javadocs contain an example to illustrate configuration of that class. In the form of JSON files your trained model or models (e.g. different models for different customer geographies) can then be directly uploaded into Solr using provided REST APIs.</p>
 </div>
@@ -1493,15 +1496,15 @@ $('#toc').on('click', 'a', function() {
 <p>The <code>"techproducts"</code> example included with Solr is pre-configured with the plugins required for learning-to-rank, but they are disabled by default.</p>
 </div>
 <div class="paragraph">
-<p>To enable the plugins, please specify the <code>"solr.ltr.enabled"</code> JVM System Property when running the example:</p>
+<p>To enable the plugins, please specify the <code>solr.ltr.enabled</code> JVM System Property when running the example:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="pygments highlight"><code data-lang="plain">bin/solr start -e techproducts -Dsolr.ltr.enabled=true</code></pre>
+<pre class="pygments highlight"><code data-lang="bash">bin/solr start -e techproducts -Dsolr.ltr.enabled<span style="color: #666666">=</span><span style="color: #008000">true</span></code></pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="LearningToRank-Uploadingfeatures">Uploading features</h3>
+<h3 id="LearningToRank-Uploadingfeatures">Uploading Features</h3>
 <div class="paragraph">
 <p>To upload features in a <code>/path/myFeatures.json</code> file, please run:</p>
 </div>
@@ -1513,81 +1516,71 @@ $('#toc').on('click', 'a', function() {
 <div class="paragraph">
 <p>To view the features you just uploaded please open the following URL in a browser:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/schema/feature-store/" class="bare">http://localhost:8983/solr/techproducts/schema/feature-store/</a><em>DEFAULT</em></p>
-</li>
-</ul>
-</div>
 <div class="paragraph">
-<p><strong>Example: /path/myFeatures.json</strong></p>
+<p><code>http://localhost:8983/solr/techproducts/schema/feature-store/_DEFAULT_</code></p>
 </div>
 <div class="listingblock">
+<div class="title">Example: /path/myFeatures.json</div>
 <div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">[</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;documentRecency&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;q&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;{!func}recip( ms(NOW,last_modified), 3.16e-11, 1, 1)&quot;</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">},</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isBook&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;fq&quot;</span><span style="color: #666666">:</span> <span style="color: #666666">[</span> <span style="color: #BA2121">&quot;{!terms f=cat}book&quot;</span> <span style="color: #666666">]</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">},</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;originalScore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.OriginalScoreFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{}</span>
-  <span style="color: #666666">}</span>
-<span style="color: #666666">]</span></code></pre>
+<pre class="pygments highlight"><code data-lang="json">[
+  {
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;documentRecency&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;q&quot;</span> : <span style="color: #BA2121">&quot;{!func}recip( ms(NOW,last_modified), 3.16e-11, 1, 1)&quot;</span>
+    }
+  },
+  {
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;isBook&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;fq&quot;</span>: [<span style="color: #BA2121">&quot;{!terms f=cat}book&quot;</span>]
+    }
+  },
+  {
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;originalScore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.OriginalScoreFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {}
+  }
+]</code></pre>
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="LearningToRank-Extractingfeatures">Extracting features</h3>
+<h3 id="LearningToRank-Extractingfeatures">Extracting Features</h3>
 <div class="paragraph">
 <p>To extract features as part of a query, add <code>[features]</code> to the <code>fl</code> parameter, for example:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id,score,%5Bfeatures%5D" class="bare">http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id,score,%5Bfeatures%5D</a></p>
-</li>
-</ul>
+<div class="paragraph">
+<p><code>http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id,score,%5Bfeatures%5D</code></p>
 </div>
 <div class="paragraph">
 <p>The output XML will include feature values as a comma-separated list, resembling the output shown here:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="pygments highlight"><code data-lang="xml">{
-  &quot;responseHeader&quot;:{
-    &quot;status&quot;:0,
-    &quot;QTime&quot;:0,
-    &quot;params&quot;:{
-      &quot;q&quot;:&quot;test&quot;,
-      &quot;fl&quot;:&quot;id,score,[features]&quot;}},
-  &quot;response&quot;:{&quot;numFound&quot;:2,&quot;start&quot;:0,&quot;maxScore&quot;:1.959392,&quot;docs&quot;:[
+<pre class="pygments highlight"><code data-lang="json">{
+  <span style="color: #008000; font-weight: bold">&quot;responseHeader&quot;</span>:{
+    <span style="color: #008000; font-weight: bold">&quot;status&quot;</span>:<span style="color: #666666">0</span>,
+    <span style="color: #008000; font-weight: bold">&quot;QTime&quot;</span>:<span style="color: #666666">0</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span>:{
+      <span style="color: #008000; font-weight: bold">&quot;q&quot;</span>:<span style="color: #BA2121">&quot;test&quot;</span>,
+      <span style="color: #008000; font-weight: bold">&quot;fl&quot;</span>:<span style="color: #BA2121">&quot;id,score,[features]&quot;</span>}},
+  <span style="color: #008000; font-weight: bold">&quot;response&quot;</span>:{<span style="color: #008000; font-weight: bold">&quot;numFound&quot;</span>:<span style="color: #666666">2</span>,<span style="color: #008000; font-weight: bold">&quot;start&quot;</span>:<span style="color: #666666">0</span>,<span style="color: #008000; font-weight: bold">&quot;maxScore&quot;</span>:<span style="color: #666666">1.959392</span>,<span style="color: #008000; font-weight: bold">&quot;docs&quot;</span>:[
       {
-        &quot;id&quot;:&quot;GB18030TEST&quot;,
-        &quot;score&quot;:1.959392,
-        &quot;[features]&quot;:&quot;documentRecency=0.020893794,isBook=0.0,originalScore=1.959392&quot;},
+        <span style="color: #008000; font-weight: bold">&quot;id&quot;</span>:<span style="color: #BA2121">&quot;GB18030TEST&quot;</span>,
+        <span style="color: #008000; font-weight: bold">&quot;score&quot;</span>:<span style="color: #666666">1.959392</span>,
+        <span style="color: #008000; font-weight: bold">&quot;[features]&quot;</span>:<span style="color: #BA2121">&quot;documentRecency=0.020893794,isBook=0.0,originalScore=1.959392&quot;</span>},
       {
-        &quot;id&quot;:&quot;UTF8TEST&quot;,
-        &quot;score&quot;:1.5513437,
-        &quot;[features]&quot;:&quot;documentRecency=0.020893794,isBook=0.0,originalScore=1.5513437&quot;}]
+        <span style="color: #008000; font-weight: bold">&quot;id&quot;</span>:<span style="color: #BA2121">&quot;UTF8TEST&quot;</span>,
+        <span style="color: #008000; font-weight: bold">&quot;score&quot;</span>:<span style="color: #666666">1.5513437</span>,
+        <span style="color: #008000; font-weight: bold">&quot;[features]&quot;</span>:<span style="color: #BA2121">&quot;documentRecency=0.020893794,isBook=0.0,originalScore=1.5513437&quot;</span>}]
   }}</code></pre>
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="LearningToRank-Uploadingamodel">Uploading a model</h3>
+<h3 id="LearningToRank-Uploadingamodel">Uploading a Model</h3>
 <div class="paragraph">
 <p>To upload the model in a <code>/path/myModel.json</code> file, please run:</p>
 </div>
@@ -1599,17 +1592,11 @@ $('#toc').on('click', 'a', function() {
 <div class="paragraph">
 <p>To view the model you just uploaded please open the following URL in a browser:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/schema/model-store" class="bare">http://localhost:8983/solr/techproducts/schema/model-store</a></p>
-</li>
-</ul>
-</div>
 <div class="paragraph">
-<p><strong>Example: /path/myModel.json</strong></p>
+<p><code>http://localhost:8983/solr/techproducts/schema/model-store</code></p>
 </div>
 <div class="listingblock">
+<div class="title">Example: /path/myModel.json</div>
 <div class="content">
 <pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">{</span>
   <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.LinearModel&quot;</span><span style="color: #666666">,</span>
@@ -1631,16 +1618,14 @@ $('#toc').on('click', 'a', function() {
 </div>
 </div>
 <div class="sect2">
-<h3 id="LearningToRank-Runningarerankquery">Running a rerank query</h3>
+<h3 id="LearningToRank-Runningarerankquery">Running a Rerank Query</h3>
 <div class="paragraph">
 <p>To rerank the results of a query, add the <code>rq</code> parameter to your search, for example:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/query?q=test&amp;rq=%7B!ltr%20model=myModel%20reRankDocs=100%7D&amp;fl=id,score">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=myModel reRankDocs=100}&amp;fl=id</a></p>
-</li>
-</ul>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="text">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=%7B!ltr%20model=myModel%20reRankDocs=100%7D&amp;fl=id,score[http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=myModel reRankDocs=100}&amp;fl=id,score]`</code></pre>
+</div>
 </div>
 <div class="paragraph">
 <p>The addition of the <code>rq</code> parameter will not change the output XML of the search.</p>
@@ -1648,35 +1633,33 @@ $('#toc').on('click', 'a', function() {
 <div class="paragraph">
 <p>To obtain the feature values computed during reranking, add <code>[features]</code> to the <code>fl</code> parameter, for example:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/query?q=test&amp;rq=%7B!ltr%20model=myModel%20reRankDocs=100%7D&amp;fl=id,score,%5Bfeatures%5D">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=myModel reRankDocs=100}&amp;fl=id</a>]</p>
-</li>
-</ul>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="text">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=%7B!ltr%20model=myModel%20reRankDocs=100%7D&amp;fl=id,score,%5Bfeatures%5D[http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=myModel reRankDocs=100}&amp;fl=id,score,[features]]</code></pre>
+</div>
 </div>
 <div class="paragraph">
 <p>The output XML will include feature values as a comma-separated list, resembling the output shown here:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="pygments highlight"><code data-lang="xml">{
-  &quot;responseHeader&quot;:{
-    &quot;status&quot;:0,
-    &quot;QTime&quot;:0,
-    &quot;params&quot;:{
-      &quot;q&quot;:&quot;test&quot;,
-      &quot;fl&quot;:&quot;id,score,[features]&quot;,
-      &quot;rq&quot;:&quot;{!ltr model=myModel reRankDocs=100}&quot;}},
-  &quot;response&quot;:{&quot;numFound&quot;:2,&quot;start&quot;:0,&quot;maxScore&quot;:1.0005897,&quot;docs&quot;:[
+<pre class="pygments highlight"><code data-lang="json">{
+  <span style="color: #008000; font-weight: bold">&quot;responseHeader&quot;</span>:{
+    <span style="color: #008000; font-weight: bold">&quot;status&quot;</span>:<span style="color: #666666">0</span>,
+    <span style="color: #008000; font-weight: bold">&quot;QTime&quot;</span>:<span style="color: #666666">0</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span>:{
+      <span style="color: #008000; font-weight: bold">&quot;q&quot;</span>:<span style="color: #BA2121">&quot;test&quot;</span>,
+      <span style="color: #008000; font-weight: bold">&quot;fl&quot;</span>:<span style="color: #BA2121">&quot;id,score,[features]&quot;</span>,
+      <span style="color: #008000; font-weight: bold">&quot;rq&quot;</span>:<span style="color: #BA2121">&quot;{!ltr model=myModel reRankDocs=100}&quot;</span>}},
+  <span style="color: #008000; font-weight: bold">&quot;response&quot;</span>:{<span style="color: #008000; font-weight: bold">&quot;numFound&quot;</span>:<span style="color: #666666">2</span>,<span style="color: #008000; font-weight: bold">&quot;start&quot;</span>:<span style="color: #666666">0</span>,<span style="color: #008000; font-weight: bold">&quot;maxScore&quot;</span>:<span style="color: #666666">1.0005897</span>,<span style="color: #008000; font-weight: bold">&quot;docs&quot;</span>:[
       {
-        &quot;id&quot;:&quot;GB18030TEST&quot;,
-        &quot;score&quot;:1.0005897,
-        &quot;[features]&quot;:&quot;documentRecency=0.020893792,isBook=0.0,originalScore=1.959392&quot;},
+        <span style="color: #008000; font-weight: bold">&quot;id&quot;</span>:<span style="color: #BA2121">&quot;GB18030TEST&quot;</span>,
+        <span style="color: #008000; font-weight: bold">&quot;score&quot;</span>:<span style="color: #666666">1.0005897</span>,
+        <span style="color: #008000; font-weight: bold">&quot;[features]&quot;</span>:<span style="color: #BA2121">&quot;documentRecency=0.020893792,isBook=0.0,originalScore=1.959392&quot;</span>},
       {
-        &quot;id&quot;:&quot;UTF8TEST&quot;,
-        &quot;score&quot;:0.79656565,
-        &quot;[features]&quot;:&quot;documentRecency=0.020893792,isBook=0.0,originalScore=1.5513437&quot;}]
+        <span style="color: #008000; font-weight: bold">&quot;id&quot;</span>:<span style="color: #BA2121">&quot;UTF8TEST&quot;</span>,
+        <span style="color: #008000; font-weight: bold">&quot;score&quot;</span>:<span style="color: #666666">0.79656565</span>,
+        <span style="color: #008000; font-weight: bold">&quot;[features]&quot;</span>:<span style="color: #BA2121">&quot;documentRecency=0.020893792,isBook=0.0,originalScore=1.5513437&quot;</span>}]
   }}</code></pre>
 </div>
 </div>
@@ -1687,7 +1670,7 @@ $('#toc').on('click', 'a', function() {
 <p>The <a href="https://lucene.apache.org/solr/7_0_0//solr-ltr/org/apache/solr/ltr/feature/ValueFeature.html">ValueFeature</a> and <a href="https://lucene.apache.org/solr/7_0_0//solr-ltr/org/apache/solr/ltr/feature/SolrFeature.html">SolrFeature</a> classes support the use of external feature information, <code>efi</code> for short.</p>
 </div>
 <div class="sect3">
-<h4 id="LearningToRank-Uploadingfeatures.1">Uploading features</h4>
+<h4 id="LearningToRank-Uploadingfeatures.1">Uploading Features</h4>
 <div class="paragraph">
 <p>To upload features in a <code>/path/myEfiFeatures.json</code> file, please run:</p>
 </div>
@@ -1699,68 +1682,62 @@ $('#toc').on('click', 'a', function() {
 <div class="paragraph">
 <p>To view the features you just uploaded please open the following URL in a browser:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/schema/feature-store/myEfiFeatureStore" class="bare">http://localhost:8983/solr/techproducts/schema/feature-store/myEfiFeatureStore</a></p>
-</li>
-</ul>
-</div>
 <div class="paragraph">
-<p><strong>Example: /path/myEfiFeatures.json</strong></p>
+<p><code>http://localhost:8983/solr/techproducts/schema/feature-store/myEfiFeatureStore</code></p>
 </div>
 <div class="listingblock">
+<div class="title">Example: /path/myEfiFeatures.json</div>
 <div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">[</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;myEfiFeatureStore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isPreferredManufacturer&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;fq&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">[</span> <span style="color: #BA2121">&quot;{!field f=manu}${preferredManufacturer}&quot;</span> <span style="color: #666666">]</span> <span style="color: #666666">}</span>
-  <span style="color: #666666">},</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;myEfiFeatureStore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;userAnswerValue&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.ValueFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;value&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;${answer:42}&quot;</span> <span style="color: #666666">}</span>
-  <span style="color: #666666">},</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;myEfiFeatureStore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;userFromMobileValue&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.ValueFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;value&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;${fromMobile}&quot;</span><span style="color: #666666">,</span> <span style="color: #BA2121">&quot;required&quot;</span> <span style="color: #666666">:</span> <span style="color: #008000; font-weight: bold">true</span> <span style="color: #666666">}</span>
-  <span style="color: #666666">},</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;myEfiFeatureStore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;userTextCat&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;q&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;{!field f=cat}${text}&quot;</span> <span style="color: #666666">}</span>
-  <span style="color: #666666">}</span>
-<span style="color: #666666">]</span></code></pre>
+<pre class="pygments highlight"><code data-lang="json">[
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;myEfiFeatureStore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;isPreferredManufacturer&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : { <span style="color: #008000; font-weight: bold">&quot;fq&quot;</span> : [ <span style="color: #BA2121">&quot;{!field f=manu}${preferredManufacturer}&quot;</span> ] }
+  },
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;myEfiFeatureStore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;userAnswerValue&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.ValueFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : { <span style="color: #008000; font-weight: bold">&quot;value&quot;</span> : <span style="color: #BA2121">&quot;${answer:42}&quot;</span> }
+  },
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;myEfiFeatureStore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;userFromMobileValue&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.ValueFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : { <span style="color: #008000; font-weight: bold">&quot;value&quot;</span> : <span style="color: #BA2121">&quot;${fromMobile}&quot;</span>, <span style="color: #008000; font-weight: bold">&quot;required&quot;</span> : <span style="color: #008000; font-weight: bold">true</span> }
+  },
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;myEfiFeatureStore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;userTextCat&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : { <span style="color: #008000; font-weight: bold">&quot;q&quot;</span> : <span style="color: #BA2121">&quot;{!field f=cat}${text}&quot;</span> }
+  }
+]</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>As an aside, you may have noticed that the <code>myEfiFeatures.json</code> example uses <code>"store":"myEfiFeatureStore"</code> attributes: read more about feature `store`s in the <a href="#LearningToRank-Lifecycle">Lifecycle</a> section of this page.</p>
+<p>As an aside, you may have noticed that the <code>myEfiFeatures.json</code> example uses <code>"store":"myEfiFeatureStore"</code> attributes: read more about feature <code>store</code> in the <a href="#LearningToRank-Lifecycle">Lifecycle</a> section of this page.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="LearningToRank-Extractingfeatures.1">Extracting features</h4>
+<h4 id="LearningToRank-Extractingfeatures.1">Extracting Features</h4>
 <div class="paragraph">
 <p>To extract <code>myEfiFeatureStore</code> features as part of a query, add <code>efi.*</code> parameters to the <code>[features]</code> part of the <code>fl</code> parameter, for example:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p>link:[] <a href="http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id,cat,manu,score,%5Bfeatures%20store=myEfiFeatureStore%20efi.text=test%20efi.preferredManufacturer=Apache%20efi.fromMobile=1%5D">http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id</a>]</p>
-</li>
-<li>
-<p>link:[] <a href="http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id,cat,manu,score,%5Bfeatures%20store=myEfiFeatureStore%20efi.text=test%20efi.preferredManufacturer=Apache%20efi.fromMobile=0%20efi.answer=13%5D">http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id</a>]</p>
-</li>
-</ul>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="text">http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id,cat,manu,score,[features store=myEfiFeatureStore efi.text=test efi.preferredManufacturer=Apache efi.fromMobile=1]</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="text">http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id,cat,manu,score,[features store=myEfiFeatureStore efi.text=test efi.preferredManufacturer=Apache efi.fromMobile=0 efi.answer=13]</code></pre>
+</div>
 </div>
 </div>
 <div class="sect3">
-<h4 id="LearningToRank-Uploadingamodel.1">Uploading a model</h4>
+<h4 id="LearningToRank-Uploadingamodel.1">Uploading a Model</h4>
 <div class="paragraph">
 <p>To upload the model in a <code>/path/myEfiModel.json</code> file, please run:</p>
 </div>
@@ -1772,70 +1749,62 @@ $('#toc').on('click', 'a', function() {
 <div class="paragraph">
 <p>To view the model you just uploaded please open the following URL in a browser:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/schema/model-store" class="bare">http://localhost:8983/solr/techproducts/schema/model-store</a></p>
-</li>
-</ul>
-</div>
 <div class="paragraph">
-<p><strong>Example: /path/myEfiModel.json</strong></p>
+<p><code>http://localhost:8983/solr/techproducts/schema/model-store</code></p>
 </div>
 <div class="listingblock">
+<div class="title">Example: /path/myEfiModel.json</div>
 <div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">{</span>
-  <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;myEfiFeatureStore&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;myEfiModel&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.LinearModel&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;features&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">[</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isPreferredManufacturer&quot;</span> <span style="color: #666666">},</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;userAnswerValue&quot;</span> <span style="color: #666666">},</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;userFromMobileValue&quot;</span> <span style="color: #666666">},</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;userTextCat&quot;</span> <span style="color: #666666">}</span>
-  <span style="color: #666666">],</span>
-  <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;weights&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;isPreferredManufacturer&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">0.2,</span>
-      <span style="color: #BA2121">&quot;userAnswerValue&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">1.0,</span>
-      <span style="color: #BA2121">&quot;userFromMobileValue&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">1.0,</span>
-      <span style="color: #BA2121">&quot;userTextCat&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">0.1</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">}</span>
-<span style="color: #666666">}</span></code></pre>
+<pre class="pygments highlight"><code data-lang="json">{
+  <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;myEfiFeatureStore&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;myEfiModel&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.LinearModel&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;features&quot;</span> : [
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;isPreferredManufacturer&quot;</span> },
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;userAnswerValue&quot;</span> },
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;userFromMobileValue&quot;</span> },
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;userTextCat&quot;</span> }
+  ],
+  <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+    <span style="color: #008000; font-weight: bold">&quot;weights&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;isPreferredManufacturer&quot;</span> : <span style="color: #666666">0.2</span>,
+      <span style="color: #008000; font-weight: bold">&quot;userAnswerValue&quot;</span> : <span style="color: #666666">1.0</span>,
+      <span style="color: #008000; font-weight: bold">&quot;userFromMobileValue&quot;</span> : <span style="color: #666666">1.0</span>,
+      <span style="color: #008000; font-weight: bold">&quot;userTextCat&quot;</span> : <span style="color: #666666">0.1</span>
+    }
+  }
+}</code></pre>
 </div>
 </div>
 </div>
 <div class="sect3">
-<h4 id="LearningToRank-Runningarerankquery.1">Running a rerank query</h4>
+<h4 id="LearningToRank-Runningarerankquery.1">Running a Rerank Query</h4>
 <div class="paragraph">
 <p>To obtain the feature values computed during reranking, add <code>[features]</code> to the <code>fl</code> parameter and <code>efi.*</code> parameters to the <code>rq</code> parameter, for example:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/query?q=test&amp;rq=%7B!ltr%20model=myEfiModel%20efi.text=test%20efi.preferredManufacturer=Apache%20efi.fromMobile=1%7D&amp;fl=id,cat,manu,score,%5Bfeatures%5D">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=myEfiModel efi.text=test efi.preferredManufacturer=Apache efi.fromMobile=1}&amp;fl=id</a>] link:[]</p>
-</li>
-<li>
-<p>link:[]<a href="http://localhost:8983/solr/techproducts/query?q=test&amp;rq=%7B!ltr%20model=myEfiModel%20efi.text=test%20efi.preferredManufacturer=Apache%20efi.fromMobile=0%20efi.answer=13%7D&amp;fl=id,cat,manu,score,%5Bfeatures%5D">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=myEfiModel efi.text=test efi.preferredManufacturer=Apache efi.fromMobile=0 efi.answer=13}&amp;fl=id</a>]</p>
-</li>
-</ul>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="text">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=myEfiModel efi.text=test efi.preferredManufacturer=Apache efi.fromMobile=1}&amp;fl=id,cat,manu,score,[features]] link:[]</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="text">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=myEfiModel efi.text=test efi.preferredManufacturer=Apache efi.fromMobile=0 efi.answer=13}&amp;fl=id,cat,manu,score,[features]]</code></pre>
+</div>
 </div>
 <div class="paragraph">
 <p>Notice the absence of <code>efi.*</code> parameters in the <code>[features]</code> part of the <code>fl</code> parameter.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="LearningToRank-Extractingfeatureswhilstreranking">Extracting features whilst reranking</h4>
+<h4 id="LearningToRank-Extractingfeatureswhilstreranking">Extracting Features While Reranking</h4>
 <div class="paragraph">
-<p>To extract features for <code>myEfiFeatureStore&#8217;s features whilst still reranking with `myModel</code>:</p>
+<p>To extract features for <code>myEfiFeatureStore</code> features while still reranking with <code>myModel</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="text">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=myModel}&amp;fl=id,cat,manu,score,[features store=myEfiFeatureStore efi.text=test efi.preferredManufacturer=Apache efi.fromMobile=1]] link:[]</code></pre>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/query?q=test&amp;rq=%7B!ltr%20model=myModel%7D&amp;fl=id,cat,manu,score,%5Bfeatures%20store=myEfiFeatureStore%20efi.text=test%20efi.preferredManufacturer=Apache%20efi.fromMobile=1%5D">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=myModel}&amp;fl=id</a>] link:[]</p>
-</li>
-</ul>
 </div>
 <div class="paragraph">
 <p>Notice the absence of <code>efi.<strong></code> parameters in the <code>rq</code> parameter (because <code>myModel</code> does not use <code>efi</code> feature) and the presence of <code>efi.</strong></code> parameters in the <code>[features]</code> part of the <code>fl</code> parameter (because <code>myEfiFeatureStore</code> contains <code>efi</code> features).</p>
@@ -1846,7 +1815,7 @@ $('#toc').on('click', 'a', function() {
 </div>
 </div>
 <div class="sect2">
-<h3 id="LearningToRank-Trainingexample">Training example</h3>
+<h3 id="LearningToRank-Trainingexample">Training Example</h3>
 <div class="paragraph">
 <p>Example training data and a demo 'train and upload model' script can be found in the <code>solr/contrib/ltr/example</code> folder in the <a href="https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git">Apache lucene-solr git repository</a> which is mirrored on <a href="https://github.com/apache/lucene-solr/tree/releases/lucene-solr/6.4.0/solr/contrib/ltr/example">github.com</a> (the <code>solr/contrib/ltr/example</code> folder is not shipped in the solr binary release).</p>
 </div>
@@ -1873,33 +1842,22 @@ $('#toc').on('click', 'a', function() {
 <ul>
 <li>
 <p>Include the required contrib JARs. Note that by default paths are relative to the Solr core so they may need adjustments to your configuration, or an explicit specification of the <code>$solr.install.dir</code>.</p>
-</li>
-</ul>
-</div>
 <div class="listingblock">
 <div class="content">
 <pre class="pygments highlight"><code data-lang="xml"><span style="color: #008000; font-weight: bold">&lt;lib</span> <span style="color: #7D9029">dir=</span><span style="color: #BA2121">&quot;${solr.install.dir:../../../..}/dist/&quot;</span> <span style="color: #7D9029">regex=</span><span style="color: #BA2121">&quot;solr-ltr-\d.*\.jar&quot;</span> <span style="color: #008000; font-weight: bold">/&gt;</span></code></pre>
 </div>
 </div>
-<div class="ulist">
-<ul>
+</li>
 <li>
 <p>Declaration of the <code>ltr</code> query parser.</p>
-</li>
-</ul>
-</div>
 <div class="listingblock">
 <div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">&lt;</span>queryParser name<span style="color: #666666">=</span><span style="color: #BA2121">&quot;ltr&quot;</span> class<span style="color: #666666">=</span><span style="color: #BA2121">&quot;org.apache.solr.ltr.search.LTRQParserPlugin&quot;</span><span style="color: #666666">/&gt;</span></code></pre>
+<pre class="pygments highlight"><code data-lang="xml"><span style="color: #008000; font-weight: bold">&lt;queryParser</span> <span style="color: #7D9029">name=</span><span style="color: #BA2121">&quot;ltr&quot;</span> <span style="color: #7D9029">class=</span><span style="color: #BA2121">&quot;org.apache.solr.ltr.search.LTRQParserPlugin&quot;</span><span style="color: #008000; font-weight: bold">/&gt;</span></code></pre>
 </div>
 </div>
-<div class="ulist">
-<ul>
+</li>
 <li>
 <p>Configuration of the feature values cache.</p>
-</li>
-</ul>
-</div>
 <div class="listingblock">
 <div class="content">
 <pre class="pygments highlight"><code data-lang="xml"><span style="color: #008000; font-weight: bold">&lt;cache</span> <span style="color: #7D9029">name=</span><span style="color: #BA2121">&quot;QUERY_DOC_FV&quot;</span>
@@ -1910,13 +1868,9 @@ $('#toc').on('click', 'a', function() {
        <span style="color: #7D9029">regenerator=</span><span style="color: #BA2121">&quot;solr.search.NoOpRegenerator&quot;</span> <span style="color: #008000; font-weight: bold">/&gt;</span></code></pre>
 </div>
 </div>
-<div class="ulist">
-<ul>
+</li>
 <li>
 <p>Declaration of the <code>[features]</code> transformer.</p>
-</li>
-</ul>
-</div>
 <div class="listingblock">
 <div class="content">
 <pre class="pygments highlight"><code data-lang="xml"><span style="color: #008000; font-weight: bold">&lt;transformer</span> <span style="color: #7D9029">name=</span><span style="color: #BA2121">&quot;features&quot;</span> <span style="color: #7D9029">class=</span><span style="color: #BA2121">&quot;org.apache.solr.ltr.response.transform.LTRFeatureLoggerTransformerFactory&quot;</span><span style="color: #008000; font-weight: bold">&gt;</span>
@@ -1924,9 +1878,12 @@ $('#toc').on('click', 'a', function() {
 <span style="color: #008000; font-weight: bold">&lt;/transformer&gt;</span></code></pre>
 </div>
 </div>
+</li>
+</ul>
+</div>
 </div>
 <div class="sect2">
-<h3 id="LearningToRank-Advancedoptions">Advanced options</h3>
+<h3 id="LearningToRank-Advancedoptions">Advanced Options</h3>
 <div class="sect3">
 <h4 id="LearningToRank-LTRThreadModule">LTRThreadModule</h4>
 <div class="paragraph">
@@ -1934,26 +1891,26 @@ $('#toc').on('click', 'a', function() {
 </div>
 </div>
 <div class="sect3">
-<h4 id="LearningToRank-Featurevectorcustomization">Feature vector customization</h4>
+<h4 id="LearningToRank-Featurevectorcustomization">Feature Vector Customization</h4>
 <div class="paragraph">
-<p>The features transformer returns dense csv values such as <code>"featureA=0.1,featureB=0.2,featureC=0.3,featureD=0.0"</code>.</p>
+<p>The features transformer returns dense CSV values such as <code>featureA=0.1,featureB=0.2,featureC=0.3,featureD=0.0</code>.</p>
 </div>
 <div class="paragraph">
-<p>For sparse csv output such as <code>"featureA:0.1 featureB:0.2 featureC:0.3"</code> you can customize the <a href="https://lucene.apache.org/solr/7_0_0//solr-ltr/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.html">feature logger transformer</a> declaration in <code>solrconfig.xml</code> as follows:</p>
+<p>For sparse CSV output such as <code>featureA:0.1 featureB:0.2 featureC:0.3</code> you can customize the <a href="https://lucene.apache.org/solr/7_0_0//solr-ltr/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.html">feature logger transformer</a> declaration in <code>solrconfig.xml</code> as follows:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">&lt;</span>transformer name<span style="color: #666666">=</span><span style="color: #BA2121">&quot;features&quot;</span> class<span style="color: #666666">=</span><span style="color: #BA2121">&quot;org.apache.solr.ltr.response.transform.LTRFeatureLoggerTransformerFactory&quot;</span><span style="color: #666666">&gt;</span>
-  <span style="color: #666666">&lt;</span>str name<span style="color: #666666">=</span><span style="color: #BA2121">&quot;fvCacheName&quot;</span><span style="color: #666666">&gt;</span>QUERY_DOC_FV<span style="color: #666666">&lt;/</span>str<span style="color: #666666">&gt;</span>
-  <span style="color: #666666">&lt;</span>str name<span style="color: #666666">=</span><span style="color: #BA2121">&quot;defaultFormat&quot;</span><span style="color: #666666">&gt;</span>sparse<span style="color: #666666">&lt;/</span>str<span style="color: #666666">&gt;</span>
-  <span style="color: #666666">&lt;</span>str name<span style="color: #666666">=</span><span style="color: #BA2121">&quot;csvKeyValueDelimiter&quot;</span><span style="color: #666666">&gt;:&lt;/</span>str<span style="color: #666666">&gt;</span>
-  <span style="color: #666666">&lt;</span>str name<span style="color: #666666">=</span><span style="color: #BA2121">&quot;csvFeatureSeparator&quot;</span><span style="color: #666666">&gt;</span> <span style="color: #666666">&lt;/</span>str<span style="color: #666666">&gt;</span>
-<span style="color: #666666">&lt;/</span>transformer<span style="color: #666666">&gt;</span></code></pre>
+<pre class="pygments highlight"><code data-lang="xml"><span style="color: #008000; font-weight: bold">&lt;transformer</span> <span style="color: #7D9029">name=</span><span style="color: #BA2121">&quot;features&quot;</span> <span style="color: #7D9029">class=</span><span style="color: #BA2121">&quot;org.apache.solr.ltr.response.transform.LTRFeatureLoggerTransformerFactory&quot;</span><span style="color: #008000; font-weight: bold">&gt;</span>
+  <span style="color: #008000; font-weight: bold">&lt;str</span> <span style="color: #7D9029">name=</span><span style="color: #BA2121">&quot;fvCacheName&quot;</span><span style="color: #008000; font-weight: bold">&gt;</span>QUERY_DOC_FV<span style="color: #008000; font-weight: bold">&lt;/str&gt;</span>
+  <span style="color: #008000; font-weight: bold">&lt;str</span> <span style="color: #7D9029">name=</span><span style="color: #BA2121">&quot;defaultFormat&quot;</span><span style="color: #008000; font-weight: bold">&gt;</span>sparse<span style="color: #008000; font-weight: bold">&lt;/str&gt;</span>
+  <span style="color: #008000; font-weight: bold">&lt;str</span> <span style="color: #7D9029">name=</span><span style="color: #BA2121">&quot;csvKeyValueDelimiter&quot;</span><span style="color: #008000; font-weight: bold">&gt;</span>:<span style="color: #008000; font-weight: bold">&lt;/str&gt;</span>
+  <span style="color: #008000; font-weight: bold">&lt;str</span> <span style="color: #7D9029">name=</span><span style="color: #BA2121">&quot;csvFeatureSeparator&quot;</span><span style="color: #008000; font-weight: bold">&gt;</span> <span style="color: #008000; font-weight: bold">&lt;/str&gt;</span>
+<span style="color: #008000; font-weight: bold">&lt;/transformer&gt;</span></code></pre>
 </div>
 </div>
 </div>
 <div class="sect3">
-<h4 id="LearningToRank-Implementationandcontributions">Implementation and contributions</h4>
+<h4 id="LearningToRank-Implementationandcontributions">Implementation and Contributions</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -1962,9 +1919,7 @@ $('#toc').on('click', 'a', function() {
 </td>
 <td class="content">
 <div class="title">How does Solr Learning-To-Rank work under the hood?</div>
-<div class="paragraph">
-<p>Please refer to the <code>ltr</code> <a href="https://lucene.apache.org/solr/7_0_0//solr-ltr/org/apache/solr/ltr/package-summary.html">javadocs</a> for an implementation overview.</p>
-</div>
+Please refer to the <code>ltr</code> <a href="https://lucene.apache.org/solr/7_0_0//solr-ltr/org/apache/solr/ltr/package-summary.html">javadocs</a> for an implementation overview.
 </td>
 </tr>
 </table>
@@ -2011,7 +1966,7 @@ $('#toc').on('click', 'a', function() {
 <h2 id="LearningToRank-Lifecycle">Lifecycle</h2>
 <div class="sectionbody">
 <div class="sect2">
-<h3 id="LearningToRank-Featurestores">Feature stores</h3>
+<h3 id="LearningToRank-Featurestores">Feature Stores</h3>
 <div class="paragraph">
 <p>It is recommended that you organise all your features into stores which are akin to namespaces:</p>
 </div>
@@ -2024,29 +1979,21 @@ $('#toc').on('click', 'a', function() {
 <p>Across stores identical or similar features can share the same name.</p>
 </li>
 <li>
-<p>If no store name is specified then the default <code><em>DEFAULT</em></code> feature store will be used.</p>
+<p>If no store name is specified then the default <code>_DEFAULT_</code> feature store will be used.</p>
 </li>
 </ul>
 </div>
 <div class="paragraph">
 <p>To discover the names of all your feature stores:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/schema/feature-store" class="bare">http://localhost:8983/solr/techproducts/schema/feature-store</a></p>
-</li>
-</ul>
+<div class="paragraph">
+<p><code>http://localhost:8983/solr/techproducts/schema/feature-store</code></p>
 </div>
 <div class="paragraph">
 <p>To inspect the content of the <code>commonFeatureStore</code> feature store:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/schema/feature-store/commonFeatureStore" class="bare">http://localhost:8983/solr/techproducts/schema/feature-store/commonFeatureStore</a></p>
-</li>
-</ul>
+<div class="paragraph">
+<p><code>http://localhost:8983/solr/techproducts/schema/feature-store/commonFeatureStore</code></p>
 </div>
 </div>
 <div class="sect2">
@@ -2057,7 +2004,7 @@ $('#toc').on('click', 'a', function() {
 <p>A model uses features from exactly one feature store.</p>
 </li>
 <li>
-<p>If no store is specified then the default <code><em>DEFAULT</em></code> feature store will be used.</p>
+<p>If no store is specified then the default <code>_DEFAULT_</code> feature store will be used.</p>
 </li>
 <li>
 <p>A model need not use all the features defined in a feature store.</p>
@@ -2070,32 +2017,20 @@ $('#toc').on('click', 'a', function() {
 <div class="paragraph">
 <p>To extract features for `currentFeatureStore&#8217;s features:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id,score,%5Bfeatures%20store=currentFeatureStore%5D">http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id</a>] link:[]</p>
-</li>
-</ul>
+<div class="paragraph">
+<p><code>http://localhost:8983/solr/techproducts/query?q=test&amp;fl=id,score,[features store=currentFeatureStore]</code></p>
 </div>
 <div class="paragraph">
-<p>To extract features for <code>nextFeatureStore&#8217;s features whilst reranking with `currentModel</code> based on <code>currentFeatureStore</code>:</p>
+<p>To extract features for <code>nextFeatureStore</code> features whilst reranking with <code>currentModel</code> based on <code>currentFeatureStore</code>:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/query?q=test&amp;rq=%7B!ltr%20model=currentModel%20reRankDocs=100%7D&amp;fl=id,score,%5Bfeatures%20store=nextFeatureStore%5D">http://localhost:8983/solr/techproducts/query?q=test&amp;rq=\{!ltr model=currentModel reRankDocs=100}&amp;fl=id</a>] link:[]</p>
-</li>
-</ul>
+<div class="paragraph">
+<p><code>http://localhost:8983/solr/techproducts/query?q=test&amp;rq={!ltr model=currentModel reRankDocs=100}&amp;fl=id,score,[features store=nextFeatureStore]</code></p>
 </div>
 <div class="paragraph">
 <p>To view all models:</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p><a href="http://localhost:8983/solr/techproducts/schema/model-store" class="bare">http://localhost:8983/solr/techproducts/schema/model-store</a></p>
-</li>
-</ul>
+<div class="paragraph">
+<p><code>http://localhost:8983/solr/techproducts/schema/model-store</code></p>
 </div>
 <div class="paragraph">
 <p>To delete the <code>currentModel</code> model:</p>
@@ -2112,9 +2047,7 @@ $('#toc').on('click', 'a', function() {
 <i class="fa icon-important" title="Important"></i>
 </td>
 <td class="content">
-<div class="paragraph">
-<p>A feature store must be deleted only when there are no models using it.</p>
-</div>
+A feature store must be deleted only when there are no models using it.
 </td>
 </tr>
 </table>
@@ -2129,7 +2062,7 @@ $('#toc').on('click', 'a', function() {
 </div>
 </div>
 <div class="sect2">
-<h3 id="LearningToRank-Applyingchanges">Applying changes</h3>
+<h3 id="LearningToRank-Applyingchanges">Applying Changes</h3>
 <div class="paragraph">
 <p>The feature store and the model store are both <a href="managed-resources.html#managed-resources">Managed Resources</a>. Changes made to managed resources are not applied to the active Solr components until the Solr collection (or Solr core in single server mode) is reloaded.</p>
 </div>
@@ -2137,7 +2070,7 @@ $('#toc').on('click', 'a', function() {
 <div class="sect2">
 <h3 id="LearningToRank-Examples">Examples</h3>
 <div class="sect3">
-<h4 id="LearningToRank-Onefeaturestore_multiplerankingmodels">One feature store, multiple ranking models</h4>
+<h4 id="one-feature-store-multiple-ranking-models">One Feature Store, Multiple Ranking Models</h4>
 <div class="ulist">
 <ul>
 <li>
@@ -2167,88 +2100,82 @@ $('#toc').on('click', 'a', function() {
 </li>
 </ul>
 </div>
-<div class="paragraph">
-<p><strong>Example: /path/commonFeatureStore.json</strong></p>
-</div>
 <div class="listingblock">
+<div class="title">Example: /path/commonFeatureStore.json</div>
 <div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">[</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;commonFeatureStore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;documentRecency&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;q&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;{!func}recip( ms(NOW,last_modified), 3.16e-11, 1, 1)&quot;</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">},</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;commonFeatureStore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isBook&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;fq&quot;</span><span style="color: #666666">:</span> <span style="color: #666666">[</span> <span style="color: #BA2121">&quot;{!terms f=category}book&quot;</span> <span style="color: #666666">]</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">},</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;commonFeatureStore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;originalScore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.OriginalScoreFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{}</span>
-  <span style="color: #666666">}</span>
-<span style="color: #666666">]</span></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p><strong>Example: /path/leftModel.json</strong></p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">{</span>
-  <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;commonFeatureStore&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;leftModel&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.LinearModel&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;features&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">[</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;documentRecency&quot;</span> <span style="color: #666666">},</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isBook&quot;</span> <span style="color: #666666">},</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;originalScore&quot;</span> <span style="color: #666666">}</span>
-  <span style="color: #666666">],</span>
-  <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;weights&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;documentRecency&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">0.1,</span>
-      <span style="color: #BA2121">&quot;isBook&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">1.0,</span>
-      <span style="color: #BA2121">&quot;originalScore&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">0.5</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">}</span>
-<span style="color: #666666">}</span></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p><strong>Example: /path/rightModel.json</strong></p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">{</span>
-  <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;commonFeatureStore&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;rightModel&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.LinearModel&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;features&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">[</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;documentRecency&quot;</span> <span style="color: #666666">},</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isBook&quot;</span> <span style="color: #666666">},</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;originalScore&quot;</span> <span style="color: #666666">}</span>
-  <span style="color: #666666">],</span>
-  <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;weights&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;documentRecency&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">1.0,</span>
-      <span style="color: #BA2121">&quot;isBook&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">0.1,</span>
-      <span style="color: #BA2121">&quot;originalScore&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">0.5</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">}</span>
-<span style="color: #666666">}</span></code></pre>
+<pre class="pygments highlight"><code data-lang="json">[
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;commonFeatureStore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;documentRecency&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;q&quot;</span> : <span style="color: #BA2121">&quot;{!func}recip( ms(NOW,last_modified), 3.16e-11, 1, 1)&quot;</span>
+    }
+  },
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;commonFeatureStore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;isBook&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;fq&quot;</span>: [ <span style="color: #BA2121">&quot;{!terms f=category}book&quot;</span> ]
+    }
+  },
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;commonFeatureStore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;originalScore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.OriginalScoreFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {}
+  }
+]</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Example: /path/leftModel.json</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="json">{
+  <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;commonFeatureStore&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;leftModel&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.LinearModel&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;features&quot;</span> : [
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;documentRecency&quot;</span> },
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;isBook&quot;</span> },
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;originalScore&quot;</span> }
+  ],
+  <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+    <span style="color: #008000; font-weight: bold">&quot;weights&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;documentRecency&quot;</span> : <span style="color: #666666">0.1</span>,
+      <span style="color: #008000; font-weight: bold">&quot;isBook&quot;</span> : <span style="color: #666666">1.0</span>,
+      <span style="color: #008000; font-weight: bold">&quot;originalScore&quot;</span> : <span style="color: #666666">0.5</span>
+    }
+  }
+}</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Example: /path/rightModel.json</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="json">{
+  <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;commonFeatureStore&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;rightModel&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.LinearModel&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;features&quot;</span> : [
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;documentRecency&quot;</span> },
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;isBook&quot;</span> },
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;originalScore&quot;</span> }
+  ],
+  <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+    <span style="color: #008000; font-weight: bold">&quot;weights&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;documentRecency&quot;</span> : <span style="color: #666666">1.0</span>,
+      <span style="color: #008000; font-weight: bold">&quot;isBook&quot;</span> : <span style="color: #666666">0.1</span>,
+      <span style="color: #008000; font-weight: bold">&quot;originalScore&quot;</span> : <span style="color: #666666">0.5</span>
+    }
+  }
+}</code></pre>
 </div>
 </div>
 </div>
 <div class="sect3">
-<h4 id="LearningToRank-Modelevolution">Model evolution</h4>
+<h4 id="LearningToRank-Modelevolution">Model Evolution</h4>
 <div class="ulist">
 <ul>
 <li>
@@ -2287,122 +2214,114 @@ $('#toc').on('click', 'a', function() {
 </li>
 </ul>
 </div>
-<div class="paragraph">
-<p><strong>Example: /path/featureStore201701.json</strong></p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">[</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;featureStore201701&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;documentRecency&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;q&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;{!func}recip( ms(NOW,last_modified), 3.16e-11, 1, 1)&quot;</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">},</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;featureStore201701&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isBook&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;fq&quot;</span><span style="color: #666666">:</span> <span style="color: #666666">[</span> <span style="color: #BA2121">&quot;{!terms f=category}book&quot;</span> <span style="color: #666666">]</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">},</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;featureStore201701&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;originalScore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.OriginalScoreFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{}</span>
-  <span style="color: #666666">}</span>
-<span style="color: #666666">]</span></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p><strong>Example: /path/linearModel201701.json</strong></p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">{</span>
-  <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;featureStore201701&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;linearModel201701&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.LinearModel&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;features&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">[</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;documentRecency&quot;</span> <span style="color: #666666">},</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isBook&quot;</span> <span style="color: #666666">},</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;originalScore&quot;</span> <span style="color: #666666">}</span>
-  <span style="color: #666666">],</span>
-  <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;weights&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;documentRecency&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">0.1,</span>
-      <span style="color: #BA2121">&quot;isBook&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">1.0,</span>
-      <span style="color: #BA2121">&quot;originalScore&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">0.5</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">}</span>
-<span style="color: #666666">}</span></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p><strong>Example: /path/featureStore201702.json</strong></p>
-</div>
 <div class="listingblock">
+<div class="title">Example: /path/featureStore201701.json</div>
 <div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">[</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;featureStore201702&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isBook&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-      <span style="color: #BA2121">&quot;fq&quot;</span><span style="color: #666666">:</span> <span style="color: #666666">[</span> <span style="color: #BA2121">&quot;{!terms f=category}book&quot;</span> <span style="color: #666666">]</span>
-    <span style="color: #666666">}</span>
-  <span style="color: #666666">},</span>
-  <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;featureStore201702&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;originalScore&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.OriginalScoreFeature&quot;</span><span style="color: #666666">,</span>
-    <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{}</span>
-  <span style="color: #666666">}</span>
-<span style="color: #666666">]</span></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p><strong>Example: /path/treesModel201702.json</strong></p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="pygments highlight"><code data-lang="java"><span style="color: #666666">{</span>
-  <span style="color: #BA2121">&quot;store&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;featureStore201702&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;treesModel201702&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;class&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.MultipleAdditiveTreesModel&quot;</span><span style="color: #666666">,</span>
-  <span style="color: #BA2121">&quot;features&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">[</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isBook&quot;</span> <span style="color: #666666">},</span>
-    <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;name&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;originalScore&quot;</span> <span style="color: #666666">}</span>
-  <span style="color: #666666">],</span>
-  <span style="color: #BA2121">&quot;params&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-    <span style="color: #BA2121">&quot;trees&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">[</span>
-      <span style="color: #666666">{</span>
-        <span style="color: #BA2121">&quot;weight&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;1&quot;</span><span style="color: #666666">,</span>
-        <span style="color: #BA2121">&quot;root&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-          <span style="color: #BA2121">&quot;feature&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;isBook&quot;</span><span style="color: #666666">,</span>
-          <span style="color: #BA2121">&quot;threshold&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;0.5&quot;</span><span style="color: #666666">,</span>
-          <span style="color: #BA2121">&quot;left&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;value&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;-100&quot;</span> <span style="color: #666666">},</span>
-          <span style="color: #BA2121">&quot;right&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-            <span style="color: #BA2121">&quot;feature&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;originalScore&quot;</span><span style="color: #666666">,</span>
-            <span style="color: #BA2121">&quot;threshold&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;10.0&quot;</span><span style="color: #666666">,</span>
-            <span style="color: #BA2121">&quot;left&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;value&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;50&quot;</span> <span style="color: #666666">},</span>
-            <span style="color: #BA2121">&quot;right&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span> <span style="color: #BA2121">&quot;value&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;75&quot;</span> <span style="color: #666666">}</span>
-          <span style="color: #666666">}</span>
-        <span style="color: #666666">}</span>
-      <span style="color: #666666">},</span>
-      <span style="color: #666666">{</span>
-        <span style="color: #BA2121">&quot;weight&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;2&quot;</span><span style="color: #666666">,</span>
-        <span style="color: #BA2121">&quot;root&quot;</span> <span style="color: #666666">:</span> <span style="color: #666666">{</span>
-          <span style="color: #BA2121">&quot;value&quot;</span> <span style="color: #666666">:</span> <span style="color: #BA2121">&quot;-10&quot;</span>
-        <span style="color: #666666">}</span>
-      <span style="color: #666666">}</span>
-    <span style="color: #666666">]</span>
-  <span style="color: #666666">}</span>
-<span style="color: #666666">}</span></code></pre>
+<pre class="pygments highlight"><code data-lang="json">[
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;featureStore201701&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;documentRecency&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;q&quot;</span> : <span style="color: #BA2121">&quot;{!func}recip( ms(NOW,last_modified), 3.16e-11, 1, 1)&quot;</span>
+    }
+  },
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;featureStore201701&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;isBook&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;fq&quot;</span>: [ <span style="color: #BA2121">&quot;{!terms f=category}book&quot;</span> ]
+    }
+  },
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;featureStore201701&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;originalScore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.OriginalScoreFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {}
+  }
+]</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Example: /path/linearModel201701.json</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="json">{
+  <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;featureStore201701&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;linearModel201701&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.LinearModel&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;features&quot;</span> : [
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;documentRecency&quot;</span> },
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;isBook&quot;</span> },
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;originalScore&quot;</span> }
+  ],
+  <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+    <span style="color: #008000; font-weight: bold">&quot;weights&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;documentRecency&quot;</span> : <span style="color: #666666">0.1</span>,
+      <span style="color: #008000; font-weight: bold">&quot;isBook&quot;</span> : <span style="color: #666666">1.0</span>,
+      <span style="color: #008000; font-weight: bold">&quot;originalScore&quot;</span> : <span style="color: #666666">0.5</span>
+    }
+  }
+}</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Example: /path/featureStore201702.json</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="json">[
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;featureStore201702&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;isBook&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.SolrFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+      <span style="color: #008000; font-weight: bold">&quot;fq&quot;</span>: [ <span style="color: #BA2121">&quot;{!terms f=category}book&quot;</span> ]
+    }
+  },
+  {
+    <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;featureStore201702&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;originalScore&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.feature.OriginalScoreFeature&quot;</span>,
+    <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {}
+  }
+]</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Example: /path/treesModel201702.json</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="json">{
+  <span style="color: #008000; font-weight: bold">&quot;store&quot;</span> : <span style="color: #BA2121">&quot;featureStore201702&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;treesModel201702&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;class&quot;</span> : <span style="color: #BA2121">&quot;org.apache.solr.ltr.model.MultipleAdditiveTreesModel&quot;</span>,
+  <span style="color: #008000; font-weight: bold">&quot;features&quot;</span> : [
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;isBook&quot;</span> },
+    { <span style="color: #008000; font-weight: bold">&quot;name&quot;</span> : <span style="color: #BA2121">&quot;originalScore&quot;</span> }
+  ],
+  <span style="color: #008000; font-weight: bold">&quot;params&quot;</span> : {
+    <span style="color: #008000; font-weight: bold">&quot;trees&quot;</span> : [
+      {
+        <span style="color: #008000; font-weight: bold">&quot;weight&quot;</span> : <span style="color: #BA2121">&quot;1&quot;</span>,
+        <span style="color: #008000; font-weight: bold">&quot;root&quot;</span> : {
+          <span style="color: #008000; font-weight: bold">&quot;feature&quot;</span> : <span style="color: #BA2121">&quot;isBook&quot;</span>,

[... 32 lines stripped ...]