You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2021/10/12 22:32:07 UTC

svn commit: r50383 [2/18] - in /dev/lucene/lucene-solr-8.10.1-RC1-rev2f24e6a49d48a032df1f12e146612f59141727a9: ./ lucene/ lucene/changes/ lucene/maven/ lucene/maven/org/ lucene/maven/org/apache/ lucene/maven/org/apache/lucene/ lucene/maven/org/apache/l...

Added: dev/lucene/lucene-solr-8.10.1-RC1-rev2f24e6a49d48a032df1f12e146612f59141727a9/lucene/changes/Changes.html
==============================================================================
--- dev/lucene/lucene-solr-8.10.1-RC1-rev2f24e6a49d48a032df1f12e146612f59141727a9/lucene/changes/Changes.html (added)
+++ dev/lucene/lucene-solr-8.10.1-RC1-rev2f24e6a49d48a032df1f12e146612f59141727a9/lucene/changes/Changes.html Tue Oct 12 22:32:06 2021
@@ -0,0 +1,18140 @@
+<!--
+**********************************************************
+** WARNING: This file is generated from CHANGES.txt by the 
+**          Perl script 'changes2html.pl'.
+**          Do *not* edit this file!
+**********************************************************
+          
+****************************************************************************
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+****************************************************************************
+-->
+<html>
+<head>
+  <title>Lucene Change Log</title>
+  <link rel="stylesheet" href="ChangesFancyStyle.css" title="Fancy">
+  <link rel="alternate stylesheet" href="ChangesSimpleStyle.css" title="Simple">
+  <link rel="alternate stylesheet" href="ChangesFixedWidthStyle.css" title="Fixed Width">
+  <META http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+  <SCRIPT>
+    function toggleList(id) {
+      listStyle = document.getElementById(id + '.list').style;
+      anchor = document.getElementById(id);
+      if (listStyle.display == 'none') {
+        listStyle.display = 'block';
+        anchor.title = 'Click to collapse';
+        location.href = '#' + id;
+      } else {
+        listStyle.display = 'none';
+        anchor.title = 'Click to expand';
+      }
+      var expandButton = document.getElementById('expand.button');
+      expandButton.disabled = false;
+      var collapseButton = document.getElementById('collapse.button');
+      collapseButton.disabled = false;
+    }
+
+    function collapseAll() {
+      var unorderedLists = document.getElementsByTagName("ul");
+      for (var i = 0; i < unorderedLists.length; i++) {
+        if (unorderedLists[i].className != 'bulleted-list')
+          unorderedLists[i].style.display = "none";
+        else
+          unorderedLists[i].style.display = "block";
+      }
+      var orderedLists = document.getElementsByTagName("ol");
+      for (var i = 0; i < orderedLists.length; i++)
+        orderedLists[i].style.display = "none"; 
+      var anchors = document.getElementsByTagName("a");
+      for (var i = 0 ; i < anchors.length; i++) {
+        if (anchors[i].id != '')
+          anchors[i].title = 'Click to expand';
+      }
+      var collapseButton = document.getElementById('collapse.button');
+      collapseButton.disabled = true;
+      var expandButton = document.getElementById('expand.button');
+      expandButton.disabled = false;
+    }
+
+    function expandAll() {
+      var unorderedLists = document.getElementsByTagName("ul");
+      for (var i = 0; i < unorderedLists.length; i++)
+        unorderedLists[i].style.display = "block";
+      var orderedLists = document.getElementsByTagName("ol");
+      for (var i = 0; i < orderedLists.length; i++)
+        orderedLists[i].style.display = "block"; 
+      var anchors = document.getElementsByTagName("a");
+      for (var i = 0 ; i < anchors.length; i++) {
+        if (anchors[i].id != '')
+          anchors[i].title = 'Click to collapse';
+      }
+      var expandButton = document.getElementById('expand.button');
+      expandButton.disabled = true;
+      var collapseButton = document.getElementById('collapse.button');
+      collapseButton.disabled = false;
+
+    }
+
+    var newerRegex = new RegExp("^(?:v8\\\\.10\\\\.1|v8\\\\.10\\\\.0)");
+    function isOlder(listId) {
+      return ! newerRegex.test(listId);
+    }
+
+    function escapeMeta(s) {
+      return s.replace(/(?=[.*+?^${}()|[\]\/\\])/g, '\\');
+    }
+
+    function shouldExpand(currentList, currentAnchor, listId) {
+      var listName = listId.substring(0, listId.length - 5);
+      var parentRegex = new RegExp("^" + escapeMeta(listName) + "\\.");
+      return currentList == listId
+             || (isOlder(currentAnchor) && listId == 'older.list')
+             || parentRegex.test(currentAnchor);
+    }
+
+    function collapse() {
+      /* Collapse all but the first and second releases. */
+      var unorderedLists = document.getElementsByTagName("ul");
+      var currentAnchor = location.hash.substring(1);
+      var currentList = currentAnchor + ".list";
+
+      for (var i = 0; i < unorderedLists.length; i++) {
+        var list = unorderedLists[i];
+        /* Collapse the current item, unless either the current item is one of
+         * the first two releases, or the current URL has a fragment and the
+         * fragment refers to the current item or one of its ancestors.
+         */
+        if (list.id != 'v8.10.1.list' 
+            && list.id != 'v8.10.0.list'
+            && list.className != 'bulleted-list'
+            && (currentAnchor == ''
+                || ! shouldExpand(currentList, currentAnchor, list.id))) {
+          list.style.display = "none";
+        }
+      }
+      var orderedLists = document.getElementsByTagName("ol");
+      for (var i = 0; i < orderedLists.length; i++) {
+        var list = orderedLists[i];
+        /* Collapse the current item, unless the current URL has a fragment
+         * and the fragment refers to the current item or one of its ancestors.
+         */
+        if (currentAnchor == ''
+            || ! shouldExpand(currentList, currentAnchor, list.id)) {
+          list.style.display = "none";
+        }
+      }
+      /* Add "Click to collapse/expand" tooltips to the release/section headings */
+      var anchors = document.getElementsByTagName("a");
+      for (var i = 0 ; i < anchors.length; i++) {
+        var anchor = anchors[i];
+        if (anchor.id != '') {
+          if (anchor.id == 'v8.10.1' || anchor.id == 'v8.10.0') {
+            anchor.title = 'Click to collapse';
+          } else {
+            anchor.title = 'Click to expand';
+          }
+        }
+      }
+
+      /* Insert "Expand All" and "Collapse All" buttons */
+      var buttonsParent = document.getElementById('buttons.parent');
+      var expandButton = document.createElement('button');
+      expandButton.appendChild(document.createTextNode('Expand All'));
+      expandButton.onclick = function() { expandAll(); }
+      expandButton.id = 'expand.button';
+      buttonsParent.appendChild(expandButton);
+      var collapseButton = document.createElement('button');
+      collapseButton.appendChild(document.createTextNode('Collapse All'));
+      collapseButton.onclick = function() { collapseAll(); }
+      collapseButton.id = 'collapse.button';
+      buttonsParent.appendChild(collapseButton);
+    }
+
+    window.onload = collapse;
+  </SCRIPT>
+</head>
+<body>
+
+<h1>Lucene Change Log</h1>
+
+<div id="buttons.parent"></div>
+
+      <p>For more information on past and future Lucene versions, please see:
+<a href="http://s.apache.org/luceneversions">http://s.apache.org/luceneversions</a>
+</p>
+<h2><a id="v8.10.1" href="javascript:toggleList('v8.10.1')">Release 8.10.1 </a></h2>
+<ul id="v8.10.1.list">
+  <li><a id="v8.10.1.bug_fixes" href="javascript:toggleList('v8.10.1.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v8.10.1.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10110">LUCENE-10110</a>: MultiCollector now handles single leaf collector that wants to skip low-scoring hits
+ but the combined score mode doesn't allow it.
+<br /><span class="attrib">(Jim Ferenczi)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10119">LUCENE-10119</a>: Sort optimization with search_after can wrongly skip documents
+whose values are equal to the last value of the previous page
+<br /><span class="attrib">(Nhat Nguyen)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10126">LUCENE-10126</a>: Sort optimization with a chunked bulk scorer
+can wrongly skip documents
+<br /><span class="attrib">(Nhat Nguyen, Mayya Sharipova)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="v8.10.0" href="javascript:toggleList('v8.10.0')">Release 8.10.0  [2021-09-27]</a></h2>
+<ul id="v8.10.0.list">
+  <li><a id="v8.10.0.api_changes" href="javascript:toggleList('v8.10.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="v8.10.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9962">LUCENE-9962</a>: DrillSideways allows sub-classes to provide "drill down" FacetsCollectors. They
+may provide a null collector if they choose to bypass "drill down" facet collection.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9902">LUCENE-9902</a>: Change the getValue method from IntTaxonomyFacets to be protected instead of private.
+Users can now access the count of an ordinal directly without constructing an extra FacetLabel.
+Also use variable length arguments for the getOrdinal call in TaxonomyReader.
+<br /><span class="attrib">(Gautam Worah)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10036">LUCENE-10036</a>: Replaced the ScoreCachingWrappingScorer ctor with a static factory method that
+ensures unnecessary wrapping doesn't occur.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10027">LUCENE-10027</a>: Add a new Directory reader open API from indexCommit and
+a custom comparator for sorting leaf readers
+<br /><span class="attrib">(Mayya Sharipova)</span>.
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-7020">LUCENE-7020</a>: TieredMergePolicy#setMaxMergeAtOnceExplicit is deprecated
+and the number of segments that get merged via explicit merges is unlimited
+by default.
+<br /><span class="attrib">(Adrien Grand, Shawn Heisey)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.10.0.new_features" href="javascript:toggleList('v8.10.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v8.10.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10083">LUCENE-10083</a>: Analyzer and stemmer for Telugu language
+<br /><span class="attrib">(Vinod Singh)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10035">LUCENE-10035</a>: The SimpleText codec now writes skip lists.
+<br /><span class="attrib">(wuda via Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.10.0.improvements" href="javascript:toggleList('v8.10.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(12)
+    <ol id="v8.10.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9944">LUCENE-9944</a>: Allow DrillSideways users to provide their own CollectorManager without also requiring
+them to provide an ExecutorService.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9946">LUCENE-9946</a>: Support for multi-value fields in LongRangeFacetCounts and
+DoubleRangeFacetCounts.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9965">LUCENE-9965</a>: Added QueryProfilerIndexSearcher and ProfilerCollector to support debugging
+query execution strategy and timing.
+<br /><span class="attrib">(Jack Conradson, Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9981">LUCENE-9981</a>: Operations.getCommonSuffix/Prefix(Automaton) is now much more
+efficient, from a worst case exponential down to quadratic cost in the
+number of states + transitions in the Automaton.  These methods no longer
+use the costly determinize method, removing the risk of
+TooComplexToDeterminizeException
+<br /><span class="attrib">(Robert Muir, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9981">LUCENE-9981</a>: Operations.determinize now throws TooComplexToDeterminizeException
+based on too much "effort" spent determinizing rather than a precise state
+count on the resulting returned automaton, to better handle adversarial
+cases like det(rev(regexp("(.*a){2000}"))) that spend lots of effort but
+result in smallish eventual returned automata.
+<br /><span class="attrib">(Robert Muir, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9983">LUCENE-9983</a>: Stop sorting determinize powersets unnecessarily.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9177">LUCENE-9177</a>: ICUNormalizer2CharFilter no longer requires normalization-inert
+characters as boundaries for incremental processing, vastly improving worst-case
+performance.
+<br /><span class="attrib">(Michael Gibney)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10030">LUCENE-10030</a>: Lazily evaluate score in DrillSidewaysScorer.doQueryFirstScoring
+<br /><span class="attrib">(Grigoriy Troitskiy)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9945">LUCENE-9945</a>: Extend DrillSideways to support exposing FacetCollectors directly.
+<br /><span class="attrib">(Greg Miller, Sejal Pawar)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10043">LUCENE-10043</a>: Decrease default for LRUQueryCache's skipCacheFactor to 10.
+This prevents caching a query clause when it is much more expensive than
+running the top-level query.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5309">LUCENE-5309</a>: Optimize facet counting for single-valued SSDV / StringValueFacetCounts.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9917">LUCENE-9917</a>: The BEST_SPEED compression mode now trades more compression ratio
+in exchange of faster reads.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.10.0.optimizations" href="javascript:toggleList('v8.10.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v8.10.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9996">LUCENE-9996</a>: Improved memory efficiency of IndexWriter's RAM buffer, in
+particular in the case of many fields and many indexing threads.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10022">LUCENE-10022</a>: Rewrite empty DisjunctionMaxQuery to MatchNoDocsQuery.
+<br /><span class="attrib">(David Harsha via Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10031">LUCENE-10031</a>: Slightly faster segment merging for sorted indices.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10014">LUCENE-10014</a>: Lucene90DocValuesFormat was using too many bits per
+value when compressing via gcd, unnecessarily wasting index storage.
+<br /><span class="attrib">(weizijun)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.10.0.bug_fixes" href="javascript:toggleList('v8.10.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(11)
+    <ol id="v8.10.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9988">LUCENE-9988</a>: Fix DrillSideways correctness bug introduced in <a href="http://issues.apache.org/jira/browse/LUCENE-9944">LUCENE-9944</a>
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9964">LUCENE-9964</a>: Duplicate long values in a document field should only be counted once when using SortedNumericDocValuesFields
+<br /><span class="attrib">(Gautam Worah)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9999">LUCENE-9999</a>: CombinedFieldQuery can fail with an exception when document
+is missing some fields.
+<br /><span class="attrib">(Jim Ferenczi, Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10020">LUCENE-10020</a>: DocComparator should not skip docs with the same docID on
+multiple sorts with search after
+<br /><span class="attrib">(Mayya Sharipova, Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10026">LUCENE-10026</a>: Fix CombinedFieldQuery equals and hashCode, which ensures
+query rewrites don't drop CombinedFieldQuery clauses.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10039">LUCENE-10039</a>: Correct CombinedFieldQuery scoring when there is a single
+field.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10046">LUCENE-10046</a>: Counting bug fixed in StringValueFacetCounts.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9963">LUCENE-9963</a>: FlattenGraphFilter is now more robust when handling
+incoming holes in the input token graph
+<br /><span class="attrib">(Geoff Lawson)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10060">LUCENE-10060</a>: Ensure DrillSidewaysQuery instances never get cached.
+<br /><span class="attrib">(Greg Miller, Zachary Chen)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10081">LUCENE-10081</a>: KoreanTokenizer should check the max backtrace gap on whitespaces.
+<br /><span class="attrib">(Jim Ferenczi)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10106">LUCENE-10106</a>: Sort optimization can wrongly skip the first document of
+each segment
+<br /><span class="attrib">(Nhat Nguyen)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.10.0.other" href="javascript:toggleList('v8.10.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(none)
+    <ol id="v8.10.0.other.list">
+    </ol>
+  </li>
+</ul>
+<h2><a id="older" href="javascript:toggleList('older')">Older Releases</a></h2>
+<ul id="older.list">
+<h3><a id="v8.9.0" href="javascript:toggleList('v8.9.0')">Release 8.9.0  [2021-06-16]</a></h3>
+<ul id="v8.9.0.list">
+  <li><a id="v8.9.0.api_changes" href="javascript:toggleList('v8.9.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.9.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9680">LUCENE-9680</a>: Removed deprecation warning from IndexWriter#getFieldNames().
+<br /><span class="attrib">(Oren Ovadia)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.9.0.new_features" href="javascript:toggleList('v8.9.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(8)
+    <ol id="v8.9.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9575">LUCENE-9575</a>: PatternTypingFilter has been added to allow setting a type attribute on tokens based on
+a configured set of regular expressions
+<br /><span class="attrib">(Gus Heck)</span>.
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9572">LUCENE-9572</a>: TypeAsSynonymFilter has been enhanced support ignoring some types, and to allow
+the generated synonyms to copy some or all flags from the original token
+<br /><span class="attrib">(Gus Heck)</span>.
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9574">LUCENE-9574</a> A token filter to drop tokens that match all specified flags.
+<br /><span class="attrib">(Gus Heck, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9537">LUCENE-9537</a>:  Added smoothingScore method and default implementation to
+Scorable abstract class.  The smoothing score allows scorers to calculate a
+score for a document where the search term or subquery is not present.  The
+smoothing score acts like an idf so that documents that do not have terms or
+subqueries that are more frequent in the index are not penalized as much as
+documents that do not have less frequent terms or subqueries and prevents
+scores which are the product or terms or subqueries from going to zero. Added
+the implementation of the Indri AND and the IndriDirichletSimilarity from the
+academic Indri search engine: <a href="http://www.lemurproject.org/indri.php.">http://www.lemurproject.org/indri.php.</a>
+<br /><span class="attrib">(Cameron VandenBerg)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9694">LUCENE-9694</a>: New tool for creating a deterministic index to enable benchmarking changes
+on a consistent multi-segment index even when they require re-indexing.
+<br /><span class="attrib">(Haoyu Zhai)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9385">LUCENE-9385</a>: Add FacetsConfig option to control which drill-down
+terms are indexed for a FacetLabel
+<br /><span class="attrib">(Zachary Chen)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9507">LUCENE-9507</a>: Custom order for leaves in IndexReader and IndexWriter
+<br /><span class="attrib">(Mayya Sharipova, Mike McCandless, Jim Ferenczi)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9950">LUCENE-9950</a>: New facet counting implementation for general string doc value fields
+(SortedSetDocValues / SortedDocValues) not created through FacetsConfig
+<br /><span class="attrib">(Greg Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.9.0.improvements" href="javascript:toggleList('v8.9.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="v8.9.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9687">LUCENE-9687</a>: Hunspell support improvements: add API for spell-checking and suggestions, support compound words,
+fix various behavior differences between Java and C++ implementations, improve performance
+<br /><span class="attrib">(Peter Gromov, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9725">LUCENE-9725</a>: BM25FQuery was extended to handle similarities beyond BM25Similarity. It
+was renamed to CombinedFieldQuery to reflect its more general scope.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9663">LUCENE-9663</a>: Add compression to terms dict from SortedSet/Sorted DocValues.
+<br /><span class="attrib">(Jaison Bi via Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9877">LUCENE-9877</a>: Reduce index size by increasing allowable exceptions in PForUtil from
+3 to 7.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9935">LUCENE-9935</a>: Enable bulk merge for stored fields with index sort.
+<br /><span class="attrib">(Robert Muir, Adrien Grand, Nhat Nguyen)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.9.0.optimizations" href="javascript:toggleList('v8.9.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v8.9.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9932">LUCENE-9932</a>: Performance improvement for BKD index building
+<br /><span class="attrib">(neoremind)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9827">LUCENE-9827</a>: Speed up merging of stored fields and term vectors for smaller segments.
+<br /><span class="attrib">(Daniel Mitterdorfer, Dimitrios Liapis, Adrien Grand, Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.9.0.bug_fixes" href="javascript:toggleList('v8.9.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(6)
+    <ol id="v8.9.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9791">LUCENE-9791</a>: BytesRefHash.equals/find is now thread safe, fixing a
+Luwak/Monitor bug causing registered queries to sometimes fail to
+match.
+<br /><span class="attrib">(Paweł Bugalski)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9887">LUCENE-9887</a>: Fixed parameter use in RadixSelector.
+<br /><span class="attrib">(liupanfeng via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9958">LUCENE-9958</a>: Fixed performance regression for boolean queries that configure a
+minimum number of matching clauses.
+<br /><span class="attrib">(Adrien Grand, Matt Weber)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9953">LUCENE-9953</a>: LongValueFacetCounts should count each document at most once when determining
+the total count for a dimension. Prior to this fix, multi-value docs could contribute a &gt; 1
+count to the dimension count.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li>LUCEDNE-9967: Do not throw NullPointerException while trying to handle another exception in
+ReplicaNode.start
+<br /><span class="attrib">(Steven Schlansker)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9991">LUCENE-9991</a>: Fix edge case failure in TestStringValueFacetCounts
+<br /><span class="attrib">(Greg Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.9.0.other" href="javascript:toggleList('v8.9.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v8.9.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9836">LUCENE-9836</a>: Removed the pure Maven build. It is no longer possible to build
+artifacts using Maven (this feature was no longer working correctly). Due to
+migration to Gradle for Lucene/Solr 9.0, the maintenance of the Maven build
+was no longer reasonable. POM files are generated for deployment to Maven
+Central only. Please use "ant generate-maven-artifacts" to produce and deploy
+artifacts to any repository.
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9836">LUCENE-9836</a>: Migrate Maven tasks to use "maven-resolver-ant-tasks"
+instead of the no longer maintained "maven-ant-tasks".
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9985">LUCENE-9985</a>: Upgrade jetty to 9.4.41
+<br /><span class="attrib">(janhoy)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9976">LUCENE-9976</a>: Fix WANDScorer assertion error.
+<br /><span class="attrib">(Zach Chen, Adrien Grand, Dawid Weiss)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.8.2" href="javascript:toggleList('v8.8.2')">Release 8.8.2  [2021-04-12]</a></h3>
+<ul id="v8.8.2.list">
+  <li><a id="v8.8.2.bug_fixes" href="javascript:toggleList('v8.8.2.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v8.8.2.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9870">LUCENE-9870</a>: Fix Circle2D intersectsLine t-value (distance) range clamp
+<br /><span class="attrib">(Jørgen Nystad)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9744">LUCENE-9744</a>: NPE on a degenerate query in MinimumShouldMatchIntervalsSource
+$MinimumMatchesIterator.getSubMatches().
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9762">LUCENE-9762</a>: DoubleValuesSource.fromQuery (also used by FunctionScoreQuery.boostByQuery) could
+throw an exception when the query implements TwoPhaseIterator and when the score is requested
+repeatedly.
+<br /><span class="attrib">(David Smiley, hossman)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.8.1" href="javascript:toggleList('v8.8.1')">Release 8.8.1  [2021-02-22]</a></h3>
+<ul id="v8.8.1.list">
+  <li><a id="v8.8.1.bug_fixes" href="javascript:toggleList('v8.8.1.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.8.1.bug_fixes.list">
+      <li>(No changes)
+</li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.8.0" href="javascript:toggleList('v8.8.0')">Release 8.8.0  [2021-02-01]</a></h3>
+<ul id="v8.8.0.list">
+  <li><a id="v8.8.0.api_changes" href="javascript:toggleList('v8.8.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.8.0.api_changes.list">
+      <li>(No changes)
+</li>
+    </ol>
+  </li>
+  <li><a id="v8.8.0.new_features" href="javascript:toggleList('v8.8.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(6)
+    <ol id="v8.8.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9552">LUCENE-9552</a>: New LatLonPoint query that accepts an array of LatLonGeometries.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9641">LUCENE-9641</a>: LatLonPoint query support for spatial relationships.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9553">LUCENE-9553</a>: New XYPoint query that accepts an array of XYGeometries.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9594">LUCENE-9594</a>: FeatureField supports newLinearQuery that for scoring uses raw indexed
+values of features without any transformation.
+<br /><span class="attrib">(Mayya Sharipova, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9378">LUCENE-9378</a>: Doc values now allow configuring how to trade compression for
+retrieval speed.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9413">LUCENE-9413</a>: Add CJKWidthCharFilter and its factory
+<br /><span class="attrib">(Tomoko Uchida)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.8.0.improvements" href="javascript:toggleList('v8.8.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v8.8.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9455">LUCENE-9455</a>: ExitableTermsEnum should sample timeout and interruption
+check before calling next().
+<br /><span class="attrib">(Zach Chen via Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9023">LUCENE-9023</a>: GlobalOrdinalsWithScore should not compute occurrences when the
+provided min is 1.
+<br /><span class="attrib">(Jim Ferenczi)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9675">LUCENE-9675</a>: Binary doc values fields now expose their configured compression mode
+in the attributes of the field info.
+<br /><span class="attrib">(Jim Ferenczi)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.8.0.optimizations" href="javascript:toggleList('v8.8.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v8.8.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9536">LUCENE-9536</a>: Reduced memory usage for OrdinalMap when a segment has all
+values.
+<br /><span class="attrib">(Julie Tibshirani via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9021">LUCENE-9021</a>: QueryParser: re-use the LookaheadSuccess exception.
+<br /><span class="attrib">(Przemek Bruski via Mikhail Khludnev)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9636">LUCENE-9636</a>: Faster decoding of postings for some numbers of bits per value.
+<br /><span class="attrib">(Guo Feng via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9346">LUCENE-9346</a>: WANDScorer now supports queries that have a
+`minimumNumberShouldMatch` configured.
+<br /><span class="attrib">(Xi Zachary Chen via Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.8.0.bug_fixes" href="javascript:toggleList('v8.8.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(8)
+    <ol id="v8.8.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9508">LUCENE-9508</a>: DocumentsWriter was only stalling threads for 1 second allowing
+documents to be indexed even the DocumentsWriter wasn't able to keep up flushing.
+Unless IW can't make progress due to an ill behaving DWPT this issue was barely
+noticeable.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9581">LUCENE-9581</a>: Japanese tokenizer should discard the compound token instead of disabling the decomposition
+of long tokens when discardCompoundToken is activated.
+<br /><span class="attrib">(Jim Ferenczi)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9595">LUCENE-9595</a>: Make Component2D#withinPoint implementations consistent with ShapeQuery logic.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9606">LUCENE-9606</a>: Wrap boolean queries generated by shape fields with a Constant score query.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9635">LUCENE-9635</a>: BM25FQuery - Mask encoded norm long value in array lookup.
+<br /><span class="attrib">(Yilun Cui)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9617">LUCENE-9617</a>: Fix per-field memory leak in IndexWriter.deleteAll(). Reset next available internal
+field number to 0 on FieldInfos.clear(), to avoid wasting FieldInfo references.
+<br /><span class="attrib">(Michael Froh)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9642">LUCENE-9642</a>: When encoding triangles in ShapeField, make sure generated triangles are CCW by rotating
+triangle points before checking triangle orientation.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9661">LUCENE-9661</a>: Fix deadlock in TermsEnum.EMPTY that occurs when trying to initialize TermsEnum and BaseTermsEnum
+at the same time
+<br /><span class="attrib">(Namgyu Kim)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.8.0.other" href="javascript:toggleList('v8.8.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v8.8.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-14995">SOLR-14995</a>: Update Jetty to 9.4.34
+<br /><span class="attrib">(Mike Drob)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9637">LUCENE-9637</a>: Removes some unused code and replaces the Point implementation on ShapeField/ShapeQuery
+random tests.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.7.0" href="javascript:toggleList('v8.7.0')">Release 8.7.0  [2020-11-03]</a></h3>
+<ul id="v8.7.0.list">
+  <li><a id="v8.7.0.api_changes" href="javascript:toggleList('v8.7.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v8.7.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9437">LUCENE-9437</a>: Lucene's facet module's DocValuesOrdinalsReader.decode method
+is now public, making it easier for applications to decode facet
+ordinals into their corresponding labels
+<br /><span class="attrib">(Ankur Goel)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9515">LUCENE-9515</a>: IndexingChain now accepts individual primitives rather than a
+DocumentsWriterPerThread instance in order to create a new DocConsumer.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9449">LUCENE-9449</a>: Field comparators for numeric fields and _doc
+were moved to their own package. TopFieldCollector sets
+TotalHits.relation to GREATER_THAN_OR_EQUAL_TO,
+as soon as the requested total hits threshold is reached, even though
+in some cases no skipping optimization is applied and all hits are collected.
+<p/>
+</li>
+    </ol>
+  </li>
+  <li><a id="v8.7.0.new_features" href="javascript:toggleList('v8.7.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v8.7.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9386">LUCENE-9386</a>: RegExpQuery added case insensitive matching option.
+<br /><span class="attrib">(Mark Harwood)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8962">LUCENE-8962</a>: Add IndexWriter merge-on-refresh feature to selectively merge
+small segments on getReader, subject to a configurable timeout, to improve
+search performance by reducing the number of small segments for searching.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9484">LUCENE-9484</a>: Allow sorting an index after it was created. With SortingCodecReader, existing
+unsorted segments can be wrapped and merged into a fresh index using IndexWriter#addIndices
+API.
+<br /><span class="attrib">(Simon Willnauer, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9444">LUCENE-9444</a>: Add utility class to retrieve facet labels from the
+taxonomy index for a facet field so such fields do not also have to
+be redundantly stored
+<br /><span class="attrib">(Ankur Goel)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.7.0.improvements" href="javascript:toggleList('v8.7.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(10)
+    <ol id="v8.7.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8574">LUCENE-8574</a>: Add a new ExpressionValueSource which will enforce only one value per name
+per hit in dependencies, ExpressionFunctionValues will no longer
+recompute already computed values
+<br /><span class="attrib">(Haoyu Zhai)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9416">LUCENE-9416</a>: Fix CheckIndex to print an invalid non-zero norm as
+unsigned long when detecting corruption.
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9440">LUCENE-9440</a>: FieldInfo#checkConsistency called twice from Lucene50(60)FieldInfosFormat#read;
+Removed the (redundant?) assert and do these checks for real.
+<br /><span class="attrib">(Yauheni Putsykovich)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9446">LUCENE-9446</a>: In BooleanQuery rewrite, always remove MatchAllDocsQuery filter clauses
+when possible.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9501">LUCENE-9501</a>: Improve coverage for Asserting* test classes: make sure to handle singleton doc
+values, and sometimes exercise Weight#scorer instead of Weight#bulkScorer for top-level
+queries.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9511">LUCENE-9511</a>: Include StoredFieldsWriter in DWPT accounting to ensure that it's
+heap consumption is taken into account when IndexWriter stalls or should flush
+DWPTs.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9514">LUCENE-9514</a>: Include TermVectorsWriter in DWPT accounting to ensure that it's
+heap consumption is taken into account when IndexWriter stalls or should flush
+DWPTs.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9523">LUCENE-9523</a>: In query shapes over shape fields, skip points while traversing the
+BKD tree when the relationship with the document is already known.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9539">LUCENE-9539</a>: Use more compact datastructures to represent sorted doc-values in memory when
+sorting a segment before flush and in SortingCodecReader.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9458">LUCENE-9458</a>: WordDelimiterGraphFilter should order tokens at the same position by endOffset to
+emit longer tokens first.  The same graph is produced.
+<br /><span class="attrib">(David Smiley)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.7.0.optimizations" href="javascript:toggleList('v8.7.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="v8.7.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9395">LUCENE-9395</a>: ConstantValuesSource now shares a single DoubleValues
+instance across all segments
+<br /><span class="attrib">(Tony Xu)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9447">LUCENE-9447</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-9486">LUCENE-9486</a>: Stored fields now get higer compression ratios on
+highly compressible data.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9373">LUCENE-9373</a>: FunctionMatchQuery now accepts a "matchCost" optimization hint.
+<br /><span class="attrib">(Maxim Glazkov, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9510">LUCENE-9510</a>: Indexing with an index sort is now faster by not compressing
+temporary representations of the data.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9449">LUCENE-9449</a>: Enhance DocComparator to provide an iterator over competitive
+documents when searching with "after". This iterator can quickly position
+on the desired "after" document skipping all documents and segments before
+"after".
+<br /><span class="attrib">(Mayya Sharipova, Jim Ferenczi)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.7.0.bug_fixes" href="javascript:toggleList('v8.7.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(6)
+    <ol id="v8.7.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9427">LUCENE-9427</a>: Fix a regression where the unified highlighter didn't produce
+highlights on fuzzy queries that correspond to exact matches.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9467">LUCENE-9467</a>: Fix NRTCachingDirectory to use Directory#fileLength to check if a file
+already exists instead of opening an IndexInput on the file which might throw a AccessDeniedException
+in some Directory implementations.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9501">LUCENE-9501</a>: Fix a bug in IndexSortSortedNumericDocValuesRangeQuery where it could violate the
+DocIdSetIterator contract.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9401">LUCENE-9401</a>: Include field in ComplexPhraseQuery's toString()
+<br /><span class="attrib">(Thomas Hecker via Munendra S N)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9578">LUCENE-9578</a>: Fix TermRangeQuery when there is no upper bound and the lower
+bound is the empty string excluded. This would previously match no strings at
+all while it should match all non-empty strings.
+<br /><span class="attrib">(Christoph Buescher via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9524">LUCENE-9524</a>: Fix NPE in SpanWeight#explain when no scoring is required and
+SpanWeight has null Similarity.SimScorer.
+<br /><span class="attrib">(Zach Chen)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.7.0.documentation" href="javascript:toggleList('v8.7.0.documentation')">Documentation</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.7.0.documentation.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9424">LUCENE-9424</a>: Add a performance warning to AttributeSource.captureState javadocs
+<br /><span class="attrib">(Haoyu Zhai)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.7.0.changes_in_runtime_behavior" href="javascript:toggleList('v8.7.0.changes_in_runtime_behavior')">Changes in Runtime Behavior</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.7.0.changes_in_runtime_behavior.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9539">LUCENE-9539</a>: SortingCodecReader now doesn't cache doc values fields anymore. Previously, SortingCodecReader
+used to cache all doc values fields after they were loaded into memory. This reader should only be used
+to sort segments after the fact using IndexWriter#addIndices.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.7.0.other" href="javascript:toggleList('v8.7.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v8.7.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9292">LUCENE-9292</a>: Refactor BKD point configuration into its own class.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9470">LUCENE-9470</a>: Make TestXYMultiPolygonShapeQueries more resilient for CONTAINS queries.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9512">LUCENE-9512</a>: Move LockFactory stress test to be a unit/integration
+test.
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss, Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.7.0.build" href="javascript:toggleList('v8.7.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.7.0.build.list">
+      <li>Upgrade forbiddenapis to version 3.1.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.6.3" href="javascript:toggleList('v8.6.3')">Release 8.6.3  [2020-10-07]</a></h3>
+<ul id="v8.6.3.list">
+  <li><a id="v8.6.3.bug_fixes" href="javascript:toggleList('v8.6.3.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.6.3.bug_fixes.list">
+      <li>(No changes)
+</li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.6.2" href="javascript:toggleList('v8.6.2')">Release 8.6.2  [2020-09-01]</a></h3>
+<ul id="v8.6.2.list">
+  <li><a id="v8.6.2.bug_fixes" href="javascript:toggleList('v8.6.2.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.6.2.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9478">LUCENE-9478</a>: Prevent DWPTDeleteQueue from referencing itself and leaking memory. The queue
+passed an implicit this reference to the next queue instance on flush which leaked about 500byte
+of memory on each full flush, commit or getReader call.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.6.1" href="javascript:toggleList('v8.6.1')">Release 8.6.1  [2020-08-13]</a></h3>
+<ul id="v8.6.1.list">
+  <li><a id="v8.6.1.bug_fixes" href="javascript:toggleList('v8.6.1.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.6.1.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9443">LUCENE-9443</a>: The UnifiedHighlighter was closing the underlying reader when there were multiple term-vector fields.
+This was a regression in 8.6.0.
+<br /><span class="attrib">(David Smiley, Chris Beer)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.6.0" href="javascript:toggleList('v8.6.0')">Release 8.6.0  [2020-07-15]</a></h3>
+<ul id="v8.6.0.list">
+  <li><a id="v8.6.0.api_changes" href="javascript:toggleList('v8.6.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="v8.6.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9265">LUCENE-9265</a>: SimpleFSDirectory is deprecated in favor of NIOFSDirectory.
+<br /><span class="attrib">(Yannick Welsch)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9304">LUCENE-9304</a>: Removed ability to set DocumentsWriterPerThreadPool on IndexWriterConfig.
+The DocumentsWriterPerThreadPool is a packaged protected final class which made it impossible
+to customize.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9339">LUCENE-9339</a>: MergeScheduler#merge doesn't accept a parameter if a new merge was found anymore.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9330">LUCENE-9330</a>: SortFields are now responsible for writing themselves into index headers if they
+are used as index sorts.
+<br /><span class="attrib">(Alan Woodward, Uwe Schindler, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9340">LUCENE-9340</a>: Deprecate SimpleBindings#add(SortField).
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9345">LUCENE-9345</a>: MergeScheduler is now decoupled from IndexWriter. Instead it accepts a MergeSource
+interface that offers the basic methods to acquire pending merges, run the merge and do accounting
+around it.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9349">LUCENE-9349</a>: QueryVisitor.consumeTermsMatching() now takes a
+Supplier&lt;ByteRunAutomaton&gt; to enable queries that build large automata to
+provide them lazily.  TermsInSetQuery switches to using this method
+to report matching terms.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9366">LUCENE-9366</a>: DocValues.emptySortedNumeric() no longer takes a maxDoc parameter
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-7822">LUCENE-7822</a>: CodecUtil#checkFooter(IndexInput, Throwable) now throws a
+CorruptIndexException if checksums mismatch or if checksums can't be verified.
+<br /><span class="attrib">(Martin Amirault, Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.6.0.new_features" href="javascript:toggleList('v8.6.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v8.6.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-7889">LUCENE-7889</a>: Grouping by range based on values from DoubleValuesSource and LongValuesSource
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8962">LUCENE-8962</a>: Add IndexWriter merge-on-commit feature to selectively merge small segments on commit,
+subject to a configurable timeout, to improve search performance by reducing the number of small
+segments for searching
+<br /><span class="attrib">(Michael Froh, Mike Sokolov, Mike Mccandless, Simon Willnauer)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.6.0.improvements" href="javascript:toggleList('v8.6.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(13)
+    <ol id="v8.6.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9276">LUCENE-9276</a>: Use same code-path for updateDocuments and updateDocument in IndexWriter and
+DocumentsWriter.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9279">LUCENE-9279</a>: Update dictionary version for Ukrainian analyzer to 4.9.1
+<br /><span class="attrib">(Andriy Rysin via Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8050">LUCENE-8050</a>: PerFieldDocValuesFormat should not get the DocValuesFormat on a field that has no doc values.
+<br /><span class="attrib">(David Smiley, Juan Rodriguez)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9304">LUCENE-9304</a>: Removed ThreadState abstraction from DocumentsWriter which allows pooling of DWPT directly and
+improves the approachability of the IndexWriter code.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9324">LUCENE-9324</a>: Add an ID to SegmentCommitInfo in order to compare commits for equality and make
+snapshots incremental on generational files.
+<br /><span class="attrib">(Simon Willnauer, Mike Mccandless, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9342">LUCENE-9342</a>: TotalHits' relation will be EQUAL_TO when the number of hits is lower than TopDocsColector's numHits
+<br /><span class="attrib">(Tomás Fernández Löbbe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9353">LUCENE-9353</a>: Metadata of the terms dictionary moved to its own file, with the
+`.tmd` extension. This allows checksums of metadata to be verified when
+opening indices and helps save seeks when opening an index.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9359">LUCENE-9359</a>: SegmentInfos#readCommit now always returns a
+CorruptIndexException if the content of the file is invalid.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9393">LUCENE-9393</a>: Make FunctionScoreQuery use ScoreMode.COMPLETE for creating the inner query weight when
+ScoreMode.TOP_DOCS is requested.
+<br /><span class="attrib">(Tomás Fernández Löbbe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9392">LUCENE-9392</a>: Make FacetsConfig.DELIM_CHAR publicly accessible
+<br /><span class="attrib">(Ankur Goel)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9397">LUCENE-9397</a>: UniformSplit supports encodable fields metadata.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9396">LUCENE-9396</a>: Improved truncation detection for points.
+<br /><span class="attrib">(Adrien Grand, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9402">LUCENE-9402</a>: Let MultiCollector handle minCompetitiveScore
+<br /><span class="attrib">(Tomás Fernández Löbbe, Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.6.0.optimizations" href="javascript:toggleList('v8.6.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="v8.6.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9254">LUCENE-9254</a>: UniformSplit keeps FST off-heap.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8103">LUCENE-8103</a>: DoubleValuesSource and QueryValueSource now use a TwoPhaseIterator if one is provided by the Query.
+<br /><span class="attrib">(Michele Palmia, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9287">LUCENE-9287</a>: UsageTrackingQueryCachingPolicy no longer caches DocValuesFieldExistsQuery.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9286">LUCENE-9286</a>: FST.Arc.BitTable reads directly FST bytes. Arc is lightweight again and FSTEnum traversal faster.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-7788">LUCENE-7788</a>: fail precommit on unparameterised log messages and examine for wasted work/objects
+<br /><span class="attrib">(Erick Erickson)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9273">LUCENE-9273</a>: Speed up geometry queries by specialising Component2D spatial operations. Instead of using a generic
+relate method for all relations, we use specialize methods for each one. In addition, the type of triangle is
+computed at deserialization time, therefore we can be more selective when decoding points of a triangle.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9087">LUCENE-9087</a>: Build always trees with full leaves and lower the default value for maxPointsPerLeafNode to 512.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9148">LUCENE-9148</a>: Points now write their index in a separate file.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9280">LUCENE-9280</a>: Add an ability for field comparators to skip non-competitive documents.
+Creating a TopFieldCollector with totalHitsThreshold less than Integer.MAX_VALUE
+instructs Lucene to skip non-competitive documents whenever possible. For numeric
+sort fields the skipping functionality works when the same field is indexed both
+with doc values and points. To indicate that the same data is stored in these points
+and doc values SortField#setCanUsePoints method should be used.
+<br /><span class="attrib">(Mayya Sharipova, Jim Ferenczi, Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.6.0.bug_fixes" href="javascript:toggleList('v8.6.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(14)
+    <ol id="v8.6.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9259">LUCENE-9259</a>: Fix wrong NGramFilterFactory argument name for preserveOriginal option
+<br /><span class="attrib">(Paul Pazderski)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8849">LUCENE-8849</a>: DocValuesRewriteMethod.visit wasn't visiting its embedded query
+<br /><span class="attrib">(Michele Palmia, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9258">LUCENE-9258</a>: DocTermsIndexDocValues assumed it was operating on a SortedDocValues (single valued) field when
+it could be multi-valued used with a SortedSetSelector
+<br /><span class="attrib">(Michele Palmia)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9164">LUCENE-9164</a>: Ensure IW processes all internal events before it closes itself on a rollback.
+<br /><span class="attrib">(Simon Willnauer, Nhat Nguyen, Dawid Weiss, Mike Mccandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8908">LUCENE-8908</a>: Return default value from objectVal when doc doesn't match the query in QueryValueSource
+<br /><span class="attrib">(Bill Bell, hossman, Munendra S N, Michele Palmia)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9133">LUCENE-9133</a>: Fix for potential NPE in TermFilteredPresearcher for empty fields
+<br /><span class="attrib">(Marvin Justice via Mike Drob)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9309">LUCENE-9309</a>: Wait for #addIndexes merges when aborting merges.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9337">LUCENE-9337</a>: Ensure CMS updates it's thread accounting datastructures consistently.
+CMS today releases it's lock after finishing a merge before it re-acquires it to update
+the thread accounting datastructures. This causes threading issues where concurrently
+finishing threads fail to pick up pending merges causing potential thread starvation on
+forceMerge calls.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9314">LUCENE-9314</a>: Single-document monitor runs were using the less efficient MultiDocumentBatch
+implementation.
+<br /><span class="attrib">(Pierre-Luc Perron, Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9362">LUCENE-9362</a>: Fix equality check in ExpressionValueSource#rewrite. This fixes rewriting of inner value sources.
+<br /><span class="attrib">(Dmitry Emets)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9405">LUCENE-9405</a>: IndexWriter incorrectly calls closeMergeReaders twice when the merged segment is 100% deleted.
+<br /><span class="attrib">(Michael Froh, Simon Willnauer, Mike Mccandless, Mike Sokolov)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9400">LUCENE-9400</a>: Tessellator might build illegal polygons when several holes share the shame vertex.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9417">LUCENE-9417</a>: Tessellator might build illegal polygons when several holes share are connected to the same
+vertex.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9418">LUCENE-9418</a>: Fix ordered intervals over interleaved terms
+<br /><span class="attrib">(Alan Woodward)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.6.0.other" href="javascript:toggleList('v8.6.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(12)
+    <ol id="v8.6.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9257">LUCENE-9257</a>: Always keep FST off-heap. FSTLoadMode, Reader attributes and openedFromWriter removed.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9272">LUCENE-9272</a>: Checksums of the terms index are now verified when
+LeafReader#checkIntegrity is called rather than when opening the index.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9270">LUCENE-9270</a>: Update Javadoc about normalizeEntry in the Kuromoji DictionaryBuilder.
+<br /><span class="attrib">(Namgyu Kim)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9275">LUCENE-9275</a>: Make TestLatLonMultiPolygonShapeQueries more resilient for CONTAINS queries.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9244">LUCENE-9244</a>: Adjust TestLucene60PointsFormat#testEstimatePointCount2Dims so it does not fail when a point
+is shared by multiple leaves.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9271">LUCENE-9271</a>: ByteBufferIndexInput was refactored to work on top of the
+ByteBuffer API.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9191">LUCENE-9191</a>: Make LineFileDocs's random seeking more efficient, making tests using LineFileDocs faster
+<br /><span class="attrib">(Robert Muir,
+Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9338">LUCENE-9338</a>: Refactors SimpleBindings to improve type safety and cycle detection
+<br /><span class="attrib">(Alan Woodward,
+Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9358">LUCENE-9358</a>: Change the way the multi-dimensional BKD tree builder generates the intermediate tree representation to be
+equal to the one dimensional case to avoid unnecessary tree and leaves rotation.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9288">LUCENE-9288</a>: poll_mirrors.py release script can handle HTTPS mirrors.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9232">LUCENE-9232</a>: Fix or suppress 13 resource leak precommit warnings in lucene/replicator
+<br /><span class="attrib">(Andras Salamon via Erick Erickson)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9398">LUCENE-9398</a>: Always keep BKD index off-heap. BKD reader does not implement Accountable any more.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.6.0.build" href="javascript:toggleList('v8.6.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v8.6.0.build.list">
+      <li>Upgrade forbiddenapis to version 3.0.1.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9376">LUCENE-9376</a>: Fix or suppress 20 resource leak precommit warnings in lucene/search
+<br /><span class="attrib">(Andras Salamon via Erick Erickson)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9380">LUCENE-9380</a>: Fix auxiliary class warnings in Lucene
+<br /><span class="attrib">(Erick Erickson)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9389">LUCENE-9389</a>: Enhance gradle logging calls validation: eliminate getMessage()
+<br /><span class="attrib">(Andras Salamon via Erick Erickson)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.5.2" href="javascript:toggleList('v8.5.2')">Release 8.5.2  [2020-05-26]</a></h3>
+<ul id="v8.5.2.list">
+  <li><a id="v8.5.2.bug_fixes" href="javascript:toggleList('v8.5.2.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.5.2.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9350">LUCENE-9350</a>: Partial reversion of <a href="http://issues.apache.org/jira/browse/LUCENE-9068">LUCENE-9068</a>; holding levenshtein automata on FuzzyQuery can end
+up blowing up query caches which use query objects as cache keys, so building the automata is
+now delayed to search time again.
+<br /><span class="attrib">(Alan Woodward, Mike Drob)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.5.1" href="javascript:toggleList('v8.5.1')">Release 8.5.1  [2020-04-16]</a></h3>
+<ul id="v8.5.1.list">
+  <li><a id="v8.5.1.bug_fixes" href="javascript:toggleList('v8.5.1.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.5.1.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9300">LUCENE-9300</a>: Fix corruption of the new gen field infos when doc values updates are applied on a segment created
+externally and added to the index with IndexWriter#addIndexes(Directory).
+<br /><span class="attrib">(Jim Ferenczi, Adrien Grand)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.5.0" href="javascript:toggleList('v8.5.0')">Release 8.5.0  [2020-03-24]</a></h3>
+<ul id="v8.5.0.list">
+  <li><a id="v8.5.0.api_changes" href="javascript:toggleList('v8.5.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="v8.5.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9093">LUCENE-9093</a>: Not an API change but a change in behavior of the UnifiedHighlighter's LengthGoalBreakIterator that will
+yield Passages sized a little different due to the fact that the sizing pivot is now the center of the first match and
+not its left edge.
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9116">LUCENE-9116</a>: PostingsWriterBase and PostingsReaderBase no longer support
+setting a field's metadata via a `long[]`.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9116">LUCENE-9116</a>: The FSTOrd postings format has been removed.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8369">LUCENE-8369</a>: Remove obsolete spatial module.
+<br /><span class="attrib">(Nick Knize, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8621">LUCENE-8621</a>: Refactor LatLonShape, XYShape, and all query and utility classes to core.
+<br /><span class="attrib">(Nick Knize)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9218">LUCENE-9218</a>: XY geometries API works in float space.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9212">LUCENE-9212</a>: Intervals.multiterm() takes CompiledAutomaton rather than plain Automaton
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9150">LUCENE-9150</a>: Restore support for dynamic PlanetModel in spatial3d.
+<br /><span class="attrib">(Nick Knize)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9171">LUCENE-9171</a>: QueryBuilder.newTermQuery() and .newSynonymQuery() now take boost parameters.
+<br /><span class="attrib">(Alessandro Benedetti, Alan Woodward)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.5.0.new_features" href="javascript:toggleList('v8.5.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v8.5.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8903">LUCENE-8903</a>: Add LatLonShape and XYShape point query.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8707">LUCENE-8707</a>: Add LatLonShape and XYShape distance query.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9238">LUCENE-9238</a>: New XYPointField field and Queries for indexing, searching and sorting
+cartesian points.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.5.0.improvements" href="javascript:toggleList('v8.5.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(12)
+    <ol id="v8.5.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9149">LUCENE-9149</a>: Increase data dimension limit in BKD.
+<br /><span class="attrib">(Nick Knize)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9102">LUCENE-9102</a>: Add maxQueryLength option to DirectSpellchecker.
+<br /><span class="attrib">(Andy Webb via Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9091">LUCENE-9091</a>: UnifiedHighlighter HTML escaping should only escape essentials
+<br /><span class="attrib">(Nándor Mátravölgyi)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9105">LUCENE-9105</a>: UniformSplit postings format detects corrupted index and better handles IO exceptions.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9106">LUCENE-9106</a>: UniformSplit postings format allows extension of block/line serializers.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9093">LUCENE-9093</a>: UnifiedHighlighter's LengthGoalBreakIterator has a new fragmentAlignment option to better center the
+first match in the passage. Also the sizing point now pivots at the center of the first match term and not its left
+edge. This yields Passages that won't be identical to the previous behavior.
+<br /><span class="attrib">(Nándor Mátravölgyi, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9153">LUCENE-9153</a>: Allow WhitespaceAnalyzer to set a maxTokenLength other than the default of 255
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9152">LUCENE-9152</a>: Improve line intersections with polygons when they are touching from the outside.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9123">LUCENE-9123</a>: Add new JapaneseTokenizer constructors with discardCompoundToken option that controls whether
+the tokenizer emits original (compound) tokens when the mode is not NORMAL.
+<br /><span class="attrib">(Kazuaki Hiraga via Tomoko Uchida)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9253">LUCENE-9253</a>: KoreanTokenizer now supports custom dictionaries(system, unknown).
+<br /><span class="attrib">(Namgyu Kim)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9171">LUCENE-9171</a>: QueryBuilder can now use BoostAttributes on input token streams to selectively
+boost particular terms or synonyms in parsed queries.
+<br /><span class="attrib">(Alessandro Benedetti, Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9298">LUCENE-9298</a>: Improve RAM accounting in BufferedUpdates when deleted doc IDs and terms are cleared.
+<br /><span class="attrib">(Yu Binglei, Simon Willnauer)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.5.0.optimizations" href="javascript:toggleList('v8.5.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(10)
+    <ol id="v8.5.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9211">LUCENE-9211</a>: Add compression for Binary doc value fields.
+<br /><span class="attrib">(Mark Harwood)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4702">LUCENE-4702</a>: Better compression of terms dictionaries.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9228">LUCENE-9228</a>: Sort dvUpdates in the term order before applying if they all update a
+single field to the same value. This optimization can reduce the flush time by around
+20% for the docValues update user cases.
+<br /><span class="attrib">(Nhat Nguyen, Adrien Grand, Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9245">LUCENE-9245</a>: Reduce AutomatonTermsEnum memory usage.
+<br /><span class="attrib">(Bruno Roustant, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9237">LUCENE-9237</a>: Faster UniformSplit intersect TermsEnum.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9260">LUCENE-9260</a>: LeafReader#checkIntegrity verifies checksums of CFS files.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9068">LUCENE-9068</a>: FuzzyQuery builds its Automaton up-front
+<br /><span class="attrib">(Alan Woodward, Mike Drob)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9113">LUCENE-9113</a>: Faster merging of SORTED/SORTED_SET doc values.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9125">LUCENE-9125</a>: Optimize Automaton.step() with binary search and introduce Automaton.next().
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9147">LUCENE-9147</a>: The index of stored fields and term vectors in now off-heap.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.5.0.bug_fixes" href="javascript:toggleList('v8.5.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(11)
+    <ol id="v8.5.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9084">LUCENE-9084</a>: Fix potential deadlock due to circular synchronization in AnalyzingInfixSuggester
+<br /><span class="attrib">(Paul Ward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9115">LUCENE-9115</a>: NRTCachingDirectory no longer caches files of unknown size.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9144">LUCENE-9144</a>: Fix error message on OneDimensionBKDWriter when too many points are added to the writer.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9135">LUCENE-9135</a>: Make UniformSplit FieldMetadata counters long.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9200">LUCENE-9200</a>: Fix TieredMergePolicy to use double (not float) math to make its merging decisions, fixing
+a corner-case bug uncovered by fun randomized tests
+<br /><span class="attrib">(Robert Muir, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9099">LUCENE-9099</a>: Unordered and Ordered interval queries now correctly handle
+repeated subterms - ordered intervals could supply an 'extra' minimized
+interval, resulting in odd matches when combined with eg CONTAINS queries;
+and unordered intervals would match duplicate subterms on the same position,
+so an query for UNORDERED(foo, foo) would match a document containing 'foo'
+only once.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9250">LUCENE-9250</a>: Add support for Circle2d#intersectsLine around the dateline.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9243">LUCENE-9243</a>: Add fudge factor when creating a bounding box of a XYCircle.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9239">LUCENE-9239</a>: Circle2D#WithinTriangle detects properly if a triangle is Within distance.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9251">LUCENE-9251</a>: Fix bug in the polygon tessellator where edges with different value on #isEdgeFromPolygon
+were bot filtered out properly.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9263">LUCENE-9263</a>: Fix wrong transformation of distance in meters to radians in Geo3DPoint.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.5.0.other" href="javascript:toggleList('v8.5.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(6)
+    <ol id="v8.5.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9109">LUCENE-9109</a>: Backport some changes from master (except StackWalker) to improve
+TestSecurityManager
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9110">LUCENE-9110</a>: Backport refactored stack analysis in tests to use generalized
+LuceneTestCase methods
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9141">LUCENE-9141</a>: Simplify LatLonShapeXQuery API by adding a new abstract class called LatLonGeometry. Queries are
+executed with input objects that extend such interface.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9194">LUCENE-9194</a>: Simplify XYShapeXQuery API by adding a new abstract class called XYGeometry. Queries are
+executed with input objects that extend such interface.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9096">LUCENE-9096</a>: Simplification of CompressingTermVectorsWriter#flushOffsets.
+<br /><span class="attrib">(kkewwei via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9225">LUCENE-9225</a>: Rectangle extends LatLonGeometry so it can be used in a geometry collection.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.4.1" href="javascript:toggleList('v8.4.1')">Release 8.4.1  [2020-01-13]</a></h3>
+<ul id="v8.4.1.list">
+  <li><a id="v8.4.1.bug_fixes" href="javascript:toggleList('v8.4.1.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.4.1.bug_fixes.list">
+      <li>(No changes)
+</li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v8.4.0" href="javascript:toggleList('v8.4.0')">Release 8.4.0  [2019-12-29]</a></h3>
+<ul id="v8.4.0.list">
+  <li><a id="v8.4.0.api_changes" href="javascript:toggleList('v8.4.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.4.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9029">LUCENE-9029</a>: Deprecate SloppyMath toRadians/toDegrees in favor of Java Math.
+<br /><span class="attrib">(Jack Conradson via Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.4.0.new_features" href="javascript:toggleList('v8.4.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.4.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8620">LUCENE-8620</a>: Add CONTAINS support for LatLonShape and XYShape.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.4.0.improvements" href="javascript:toggleList('v8.4.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(7)
+    <ol id="v8.4.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9002">LUCENE-9002</a>: Skip costly caching clause in LRUQueryCache if it makes the query
+many times slower.
+<br /><span class="attrib">(Guoqiang Jiang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9006">LUCENE-9006</a>: WordDelimiterGraphFilter's catenateAll token is now ordered before any token parts, like WDF did.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9028">LUCENE-9028</a>: introducing Intervals.multiterm()
+<br /><span class="attrib">(Mikhail Khludnev)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9018">LUCENE-9018</a>: ConcatenateGraphFilter now has a configurable separator.
+<br /><span class="attrib">(Stanislav Mikulchik, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9036">LUCENE-9036</a>: ExitableDirectoryReader may interupt scaning over DocValues
+<br /><span class="attrib">(Mikhail Khludnev)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9062">LUCENE-9062</a>: QueryVisitor now has a consumeTermsMatching() method, allowing queries
+that match a class of terms to pass a ByteRunAutomaton matching those that class
+back to the visitor.
+<br /><span class="attrib">(Alan Woodward, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9073">LUCENE-9073</a>: IntervalQuery to respond field on toString() and explain()
+<br /><span class="attrib">(Mikhail Khludnev)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.4.0.optimizations" href="javascript:toggleList('v8.4.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="v8.4.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8928">LUCENE-8928</a>: When building a kd-tree for dimensions n &gt; 2, compute exact bounds for an inner node every N splits
+to improve the quality of the tree. N is defined by SPLITS_BEFORE_EXACT_BOUNDS which is set to 4.
+<br /><span class="attrib">(Ignacio Vera, Adrien Grand)</span></li>
+      <li>BaseDirectoryReader no longer sums up the `LeafReader#numDocs` of its leaves
+eagerly. This especially helps when creating views of readers that hide
+documents, since computing the number of live documents is an expensive
+operation.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8992">LUCENE-8992</a>: TopFieldCollector and TopScoreDocCollector can now share minimum scores across leaves
+concurrently.
+<br /><span class="attrib">(Adrien Grand, Atri Sharma, Jim Ferenczi)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8932">LUCENE-8932</a>: BKDReader's index is now stored off-heap when the IndexInput is
+an instance of ByteBufferIndexInput.
+<br /><span class="attrib">(Jack Conradson via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9024">LUCENE-9024</a>: IntroSelector now falls back to the median of medians algorithm
+instead of sorting when the maximum recursion level is exceeded, providing
+better worst-case runtime.
+<br /><span class="attrib">(Paul Sanwald via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8920">LUCENE-8920</a>: The denser arcs of FST now index labels with a bitset in order
+to provide near constant time access.
+<br /><span class="attrib">(Bruno Roustant, Mike Sokolov via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9027">LUCENE-9027</a>: Use SIMD instructions to decode postings.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9049">LUCENE-9049</a>: Remove FST cached root arcs now redundant with labels indexed by bitset.
+This frees some on-heap FST space.
+<br /><span class="attrib">(Jack Conradson via Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9045">LUCENE-9045</a>: Do not use TreeMap/TreeSet in BlockTree and PerFieldPostingsFormat.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.4.0.bug_fixes" href="javascript:toggleList('v8.4.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(7)
+    <ol id="v8.4.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9001">LUCENE-9001</a>: Fix race condition in SetOnce.
+<br /><span class="attrib">(Przemko Robakowski)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9030">LUCENE-9030</a>: Fix WordnetSynonymParser behaviour so it behaves similar to
+SolrSynonymParser.
+<br /><span class="attrib">(Christoph Buescher via Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9054">LUCENE-9054</a>: Fix reproduceJenkinsFailures.py to not overwrite junit XML files when retrying
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9031">LUCENE-9031</a>: UnsupportedOperationException on MatchesIterator.getQuery()
+<br /><span class="attrib">(Alan Woodward, Mikhail Khludnev)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8996">LUCENE-8996</a>: maxScore was sometimes missing from distributed grouped responses.
+<br /><span class="attrib">(Julien Massenet, Diego Ceccarelli, Munendra S N, Christine Poerschke)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9055">LUCENE-9055</a>: Fix the detection of lines crossing triangles through edge points.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9103">LUCENE-9103</a>: Disjunctions can miss some hits in some rare conditions.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.4.0.other" href="javascript:toggleList('v8.4.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(6)
+    <ol id="v8.4.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8979">LUCENE-8979</a>: Code Cleanup: Use entryset for map iteration wherever possible. - Part 2
+<br /><span class="attrib">(Koen De Groote)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8746">LUCENE-8746</a>: Refactor EdgeTree - Introduce a Component tree that represents the tree of components (e.g polygons).
+Edge tree is now just a tree of edges.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8994">LUCENE-8994</a>: Code Cleanup - Pass values to list constructor instead of empty constructor followed by addAll().
+<br /><span class="attrib">(Koen De Groote)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9046">LUCENE-9046</a>: Fix wrong example in Javadoc of TermInSetQuery
+<br /><span class="attrib">(Namgyu Kim)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8983">LUCENE-8983</a>: Add sandbox PhraseWildcardQuery to control multi-terms expansions in a phrase.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9067">LUCENE-9067</a>: Polygon2D#contains() is now thread safe.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.4.0.build" href="javascript:toggleList('v8.4.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v8.4.0.build.list">
+      <li>Upgrade forbiddenapis to version 2.7; upgrade Groovy to 2.4.17.
+<br /><span class="attrib">(Uwe Schindler)</span></li>

[... 16927 lines stripped ...]