You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2021/11/26 14:05:58 UTC

svn commit: r51104 [2/16] - in /dev/lucene/lucene-9.0.0-RC3-rev-1ddce848cf3d5067efcafc6569d5f8203e56af0b: ./ lucene/ lucene/changes/ lucene/maven/ lucene/maven/org/ lucene/maven/org/apache/ lucene/maven/org/apache/lucene/ lucene/maven/org/apache/lucene...

Added: dev/lucene/lucene-9.0.0-RC3-rev-1ddce848cf3d5067efcafc6569d5f8203e56af0b/lucene/changes/Changes.html
==============================================================================
--- dev/lucene/lucene-9.0.0-RC3-rev-1ddce848cf3d5067efcafc6569d5f8203e56af0b/lucene/changes/Changes.html (added)
+++ dev/lucene/lucene-9.0.0-RC3-rev-1ddce848cf3d5067efcafc6569d5f8203e56af0b/lucene/changes/Changes.html Fri Nov 26 14:05:52 2021
@@ -0,0 +1,18622 @@
+<!--
+**********************************************************
+** 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.
+****************************************************************************
+-->
+<!DOCTYPE html>
+<html lang="en">
+<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 olderList = document.getElementById("older.list");
+      olderList.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 olderList = document.getElementById("older.list");
+      olderList.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("^(?:v9\\\\.0\\\\.0|v8\\\\.11\\\\.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 != 'v9.0.0.list' 
+            && list.id != 'v8.11.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";
+        }
+      }
+      var olderList = document.getElementById("older.list");
+      olderList.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 == 'v9.0.0' || anchor.id == 'v8.11.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="v9.0.0" href="javascript:toggleList('v9.0.0')">Release 9.0.0 </a></h2>
+<ul id="v9.0.0.list">
+  <li><a id="v9.0.0.new_features" href="javascript:toggleList('v9.0.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(8)
+    <ol id="v9.0.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9322">LUCENE-9322</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-9855">LUCENE-9855</a>: Vector-valued fields, Lucene90 Codec
+<br /><span class="attrib">(Mike Sokolov, Julie Tibshirani, Tomoko Uchida)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9004">LUCENE-9004</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-10040">LUCENE-10040</a>: Approximate nearest vector search via NSW graphs
+<br /><span class="attrib">(Mike Sokolov, Tomoko Uchida et al.)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9659">LUCENE-9659</a>: SpanPayloadCheckQuery now supports inequalities.
+<br /><span class="attrib">(Kevin Watters, Gus Heck)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9589">LUCENE-9589</a>: Swedish Minimal Stemmer
+<br /><span class="attrib">(janhoy)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9313">LUCENE-9313</a>: Add SerbianAnalyzer based on the snowball stemmer.
+<br /><span class="attrib">(Dragan Ivanovic)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10095">LUCENE-10095</a>: Add NepaliAnalyzer based on the snowball stemmer.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10096">LUCENE-10096</a>: Add TamilAnalyzer based on the snowball stemmer.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10102">LUCENE-10102</a>: Add JapaneseCompletionFilter for Input Method-aware auto-completion
+<br /><span class="attrib">(Tomoko Uchida, Robert Muir, Jun Ohtani)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.0.0.system_requirements" href="javascript:toggleList('v9.0.0.system_requirements')">System Requirements</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.0.0.system_requirements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8738">LUCENE-8738</a>: Move to Java 11 as minimum Java version.
+<br /><span class="attrib">(Adrien Grand, Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.0.0.api_changes" href="javascript:toggleList('v9.0.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(44)
+    <ol id="v9.0.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8638">LUCENE-8638</a>: Remove many deprecated methods and classes including FST.lookupByOutput(),
+LegacyBM25Similarity and Jaspell suggester.
+<p>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8982">LUCENE-8982</a>: Separate out native code to another module to allow cpp
+build with gradle. This also changes the name of the native "posix-support"
+library to LuceneNativeIO.
+<br /><span class="attrib">(Zachary Chen, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9562">LUCENE-9562</a>: All binary analysis packages (and corresponding
+Maven artifacts) with names containing '-analyzers-' have been renamed
+to '-analysis-'.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8474">LUCENE-8474</a>: RAMDirectory and associated deprecated classes have been
+removed.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-3041">LUCENE-3041</a>: The deprecated Weight#extractTerms() method has been
+removed
+<br /><span class="attrib">(Alan Woodward, Simon Willnauer, David Smiley, Luca Cavanna)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8805">LUCENE-8805</a>: StoredFieldVisitor#stringField now takes a String rather than a
+byte[] that stores the UTF-8 bytes of the stored string.
+<br /><span class="attrib">(Namgyu Kim via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8811">LUCENE-8811</a>: BooleanQuery#setMaxClauseCount() and #getMaxClauseCount() have
+moved to IndexSearcher. The checks are now implemented using a QueryVisitor
+and apply to all queries, rather than only booleans.
+<br /><span class="attrib">(Atri Sharma, Adrien
+Grand, Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8909">LUCENE-8909</a>: The deprecated IndexWriter#getFieldNames() method has been removed.
+<br /><span class="attrib">(Adrien Grand, Munendra S N)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8948">LUCENE-8948</a>: Change "name" argument in ICU factories to "form". Here, "form" is
+named after "Unicode Normalization Form".
+<br /><span class="attrib">(Tomoko Uchida)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8933">LUCENE-8933</a>: Validate JapaneseTokenizer user dictionary entry.
+<br /><span class="attrib">(Tomoko Uchida)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8905">LUCENE-8905</a>: Better defence against malformed arguments in TopDocsCollector
+<br /><span class="attrib">(Atri Sharma)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9089">LUCENE-9089</a>: FST Builder renamed FSTCompiler with fluent-style Builder.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9212">LUCENE-9212</a>: Deprecated Intervals.multiterm() methods that take a bare Automaton
+have been removed
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9264">LUCENE-9264</a>: SimpleFSDirectory has been removed in favor of NIOFSDirectory.
+<br /><span class="attrib">(Yannick Welsch)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9281">LUCENE-9281</a>: Use java.util.ServiceLoader to load codec components and analysis
+factories to be compatible with Java Module System. This allows to load factories
+without META-INF/service from a Java module exposing the factory in the module
+descriptor. This breaks backwards compatibility as custom analysis factories
+must now also implement the default constructor (see MIGRATE.md).
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9307">LUCENE-9307</a>: BufferedIndexInput#setBufferSize has been removed.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9340">LUCENE-9340</a>: SimpleBindings#add(SortField) has been removed.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9462">LUCENE-9462</a>: Fields without positions should still return MatchIterator.
+<br /><span class="attrib">(Alan Woodward, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9516">LUCENE-9516</a>: Removed the ability to replace the IndexingChain / DocConsumer
+in Lucenes IndexWriter. The interface is not sufficient to efficiently
+replace the functionality with reasonable efforts.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9317">LUCENE-9317</a> <a href="http://issues.apache.org/jira/browse/LUCENE-9318">LUCENE-9318</a> <a href="http://issues.apache.org/jira/browse/LUCENE-9319">LUCENE-9319</a> <a href="http://issues.apache.org/jira/browse/LUCENE-9558">LUCENE-9558</a> <a href="http://issues.apache.org/jira/browse/LUCENE-9600">LUCENE-9600</a> : Clean up package name conflicts
+between modules. See MIGRATE.md for details.
+<br /><span class="attrib">(David Ryan, Tomoko Uchida, Uwe Schindler, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9646">LUCENE-9646</a>: Set BM25Similarity discountOverlaps via the constructor
+<br /><span class="attrib">(Patrick Marty via Bruno Roustant)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9480">LUCENE-9480</a>: Make DataInput's skipBytes(long) abstract as the implementation was not performant.
+IndexInput's api is unaffected: skipBytes() is implemented via seek().
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9796">LUCENE-9796</a>: SortedDocValues no longer extends BinaryDocValues, as binaryValue() was not performant.
+See MIGRATE.md for details.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9853">LUCENE-9853</a>: JapaneseAnalyzer should use CJKWidthCharFilter for full-width and half-width character normalization.
+<br /><span class="attrib">(Tomoko Uchida)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9387">LUCENE-9387</a>: Removed CodecReader#ramBytesUsed.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9334">LUCENE-9334</a>: Require consistency between data-structures on a per-field basis.
+A field across all documents within an index must be indexed with the same index
+options and data-structures. As a consequence of this, doc values updates are
+only applicable for fields that are indexed with doc values only.
+<br /><span class="attrib">(Mayya Sharipova,
+Adrien Grand, Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9047">LUCENE-9047</a>: Directory API is now little endian.
+<br /><span class="attrib">(Ignacio Vera, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9948">LUCENE-9948</a>: No longer require the user to specify whether-or-not a field is multi-valued in
+LongValueFacetCounts (detect automatically based on what is indexed).
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9843">LUCENE-9843</a>: Remove compression option on default codec's docvalues.
+<br /><span class="attrib">(Jack Conradson)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9204">LUCENE-9204</a>: SpanQuery and its subclasses have been moved from core/ into the
+queries/ module.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9454">LUCENE-9454</a>: Analyzer no longer has a mutable version field.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9956">LUCENE-9956</a>: Expose the getBaseQuery, getDrillDownQueries APIs from DrillDownQuery
+<br /><span class="attrib">(Gautam Worah)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8143">LUCENE-8143</a>: SpanBoostQuery has been removed.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9998">LUCENE-9998</a>: Remove unused parameter fis in StoredFieldsWriter.finish() and TermVectorsWriter.finish(),
+including those subclasses.
+<br /><span class="attrib">(kkewwei)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-7020">LUCENE-7020</a>: TieredMergePolicy#setMaxMergeAtOnceExplicit has been removed.
+TieredMergePolicy no longer sets a limit on the maximum number of segments
+that can be merged at once via a forced merge.
+<br /><span class="attrib">(Adrien Grand, Shawn Heisey)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10027">LUCENE-10027</a>: Directory reader open API from indexCommit and leafSorter has been modified
+to add an extra parameter - minSupportedMajorVersion.
+<br /><span class="attrib">(Mayya Sharipova)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9620">LUCENE-9620</a>: Added a (sometimes) faster implementation for IndexSearcher#count that relies on the new Weight#count API.
+The Weight#count API represents a cleaner way for Query classes to optimize their counting method.
+<br /><span class="attrib">(Gautam Worah, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10089">LUCENE-10089</a>: Add a method to SortField that allows to enable or disable numeric sort
+optimization to use the points index to skip over non-competitive documents,
+which is enabled by default from 9.0
+<br /><span class="attrib">(Mayya Sharipova, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10115">LUCENE-10115</a>: Add an extension point, BaseQueryParser#getFuzzyDistance, to allow custom
+query parsers to determine the similarity distance for fuzzy queries.
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10132">LUCENE-10132</a>: Support addition of diagnostics by custom merge policies
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9325">LUCENE-9325</a>: Sort is now final, and the `setSort()` method has been removed
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9431">LUCENE-9431</a>: The UnifiedHighlighter's WEIGHT_MATCHES flag is now set by default, provided its
+requirements are met.  It can be disabled via over-riding getFlags
+<br /><span class="attrib">(Animesh Pandey, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10158">LUCENE-10158</a>: Add a new interface Unwrappable to the utils package to allow code to
+unwrap wrappers/delegators that are added by Lucene's testing framework. This will allow
+testing new MMapDirectory implementation based on JDK Project Panama.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10260">LUCENE-10260</a>: LucenePackage class has been removed. The implementation string can be
+retrieved from Version.getPackageImplementationVersion().
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.0.0.improvements" href="javascript:toggleList('v9.0.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(48)
+    <ol id="v9.0.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10234">LUCENE-10234</a>: Added Automatic-Module-Name to all JARs.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10182">LUCENE-10182</a>: TestRamUsageEstimator used RamUsageTester.sizeOf throughout, making some of the
+tests trivial. Now, it compares results from RamUsageEstimator with those from RamUsageTester.
+To prevent this error in the future, RamUsageTester.sizeOf was renamed to ramUsed.
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss, Stefan Vodita)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10129">LUCENE-10129</a>: RamUsageEstimator overloads the shallowSizeOf method for primitive arrays
+to avoid falling back on shallowSizeOf(Object), which could lead to performance traps.
+<br /><span class="attrib">(Robert Muir, Uwe Schindler, Stefan Vodita)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10139">LUCENE-10139</a>: ExternalRefSorter returns a covariant with a subtype of BytesRefIterator
+that is Closeable.
+<br /><span class="attrib">(Dawid Weiss)</span>.
+<p>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10135">LUCENE-10135</a>: Correct passage selector behavior for long matching snippets
+<br /><span class="attrib">(Dawid Weiss)</span>.
+<p>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9960">LUCENE-9960</a>: Avoid unnecessary top element replacement for equal elements in PriorityQueue.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9633">LUCENE-9633</a>: Improve match highlighter behavior for degenerate intervals (on non-existing positions).
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9618">LUCENE-9618</a>: Do not call IntervalIterator.nextInterval after NO_MORE_DOCS is returned.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9576">LUCENE-9576</a>: Improve ConcurrentMergeScheduler settings by default, assuming modern I/O.
+Previously Lucene was too conservative, jumping through hoops to detect if disks were SSD-backed.
+In many common modern cases (VMs, RAID arrays, containers, encrypted mounts, non-Linux OS),
+the pessimistic heuristics were wrong, resulting in slower indexing performance. Heuristics were
+also complex and would trigger JDK issues even on unrelated mount points. Merge scheduler defaults
+are now modernized and the heuristics removed. Users with spinning disks that want to maximize I/O
+performance should tweak ConcurrentMergeScheduler.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9463">LUCENE-9463</a>: Query match region retrieval component, passage scoring and formatting
+for building custom highlighters.
+<br /><span class="attrib">(Alan Woodward, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9370">LUCENE-9370</a>: RegExp query is no longer lenient about inappropriate backslashes and
+follows the Java Pattern policy for rejecting illegal syntax.
+<br /><span class="attrib">(Mark Harwood)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9336">LUCENE-9336</a>: RegExp query now supports \w \W \d \D \s \S expressions.
+This is a break with previous behaviour where these were (mis)interpreted
+as literally the characters w W d etc.
+<br /><span class="attrib">(Mark Harwood)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8757">LUCENE-8757</a>: When provided with an ExecutorService to run queries across
+multiple threads, IndexSearcher now groups small segments together, up to
+250k docs per slice.
+<br /><span class="attrib">(Atri Sharma via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8857">LUCENE-8857</a>: Introduce Custom Tiebreakers in TopDocs.merge for tie breaking on
+docs on equal scores. Also, remove the ability of TopDocs.merge to set shard
+indices
+<br /><span class="attrib">(Atri Sharma, Adrien Grand, Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8958">LUCENE-8958</a>: Shared count early termination for relevance sorted indices
+<br /><span class="attrib">(Atri Sharma)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8937">LUCENE-8937</a>: Avoid aggressive stemming on numbers in the FrenchMinimalStemmer.
+<br /><span class="attrib">(Adrien Gallou via Tomoko Uchida)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8596">LUCENE-8596</a>: Kuromoji user dictionary now accepts entries containing hash mark (#) that were
+previously treated as beginning a line-ending comment
+<br /><span class="attrib">(Satoshi Kato and Masaru Hasegawa via
+Michael Sokolov)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9109">LUCENE-9109</a>: Use StackWalker to implement TestSecurityManager's detection
+of JVM exit
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9110">LUCENE-9110</a>: Refactor stack analysis in tests to use generalized LuceneTestCase
+methods that use StackWalker
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9206">LUCENE-9206</a>: IndexMergeTool gets additional options to control the merging.
+This tool no longer forceMerge(1)s to a single segment by default. If you
+rely upon this behavior, pass -max-segments 1 instead.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9220">LUCENE-9220</a>: Upgrade snowball to 2.0. New snowball stemmers: Hindi, Indonesian,
+Nepali, Serbian, and Tamil. New stoplist: Indonesian. Adds gradle 'snowball'
+task to regenerate and ease future upgrades.
+<br /><span class="attrib">(Robert Muir, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9354">LUCENE-9354</a>: Improvements to snowball french stopwords list, so that it is less
+aggressive.
+<br /><span class="attrib">(Philippe Ouellet)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9114">LUCENE-9114</a>: Improve ValueSourceScorer's Default Cost Implementation
+<br /><span class="attrib">(Atri Sharma, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9074">LUCENE-9074</a>: Introduce Slice Executor For Dynamic Runtime Execution Of Slices
+<br /><span class="attrib">(Atri Sharma)</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. In this case, there is an assumption that the same data is
+stored in these points and doc values
+<br /><span class="attrib">(Mayya Sharipova, Jim Ferenczi, 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". Also redesign numeric comparators to provide skipping functionality
+by default.
+<br /><span class="attrib">(Mayya Sharipova, Jim Ferenczi)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9527">LUCENE-9527</a>: Upgrade javacc to 7.0.4, regenerate query parsers.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9531">LUCENE-9531</a>: Consolidated CharStream and FastCharStream classes: these have been moved
+from each query parser package to org.apache.lucene.queryparser.charstream
+<br /><span class="attrib">(Dawid Weiss)</span>.
+<p>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9450">LUCENE-9450</a>: Use BinaryDocValues for the taxonomy index instead of StoredFields.
+Add backwards compatibility tests for the taxonomy index.
+<br /><span class="attrib">(Gautam Worah, Michael McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9605">LUCENE-9605</a>: Update snowball to d8cf01ddf37a, adds Yiddish stemmer.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8982">LUCENE-8982</a>: Make NativeUnixDirectory pure java with FileChannel direct IO flag,
+and rename to DirectIODirectory (Zach Chen, Uwe Schindler, Mike McCandless, Dawid Weiss).
+<p>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9674">LUCENE-9674</a>: Implement faster advance on VectorValues using binary search.
+<br /><span class="attrib">(Anand Kotriwal, Mike Sokolov)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9794">LUCENE-9794</a>: Speed up implementations of DataInput.skipBytes().
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9898">LUCENE-9898</a>: Removes no longer used scorePayload method from BM25Similarity
+<br /><span class="attrib">(Pieter van Boxtel)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9850">LUCENE-9850</a>: Switch to PFOR encoding for doc IDs (instead of FOR).
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9929">LUCENE-9929</a>: Add NorwegianNormalizationFilter, which does the same as ScandinavianNormalizationFilter except
+it does not fold oo-&gt;ø and ao-&gt;å.
+<br /><span class="attrib">(janhoy, Robert Muir, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9535">LUCENE-9535</a>: Improve DocumentsWriterPerThreadPool to prefer larger instances.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10000">LUCENE-10000</a>: MultiCollectorManager now has parity with MultiCollector with respect to how it
+handles CollectionTerminationException and setMinCompetitiveScore calls.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10019">LUCENE-10019</a>: Align file starts in CFS files to have proper alignment (8 bytes)
+<br /><span class="attrib">(Uwe Schinder)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9662">LUCENE-9662</a>: Make CheckIndex concurrent by parallelizing index check across segments.
+<br /><span class="attrib">(Zach Chen, Mike McCandless, Dawid Weiss, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9476">LUCENE-9476</a>: Add new getBulkPath API to DirectoryTaxonomyReader to more efficiently retrieve FacetLabels for multiple
+facet ordinals at once. This API is 2-4% faster than iteratively calling getPath.
+The getPath API now throws an IAE instead of returning null if the ordinal is out of bounds.
+<br /><span class="attrib">(Gautam Worah, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10113">LUCENE-10113</a>: Use VarHandles to access int/long/short primitive types in byte arrays.
+This improves readability and performance of encoding/decoding of primitives to index
+file format in input/output classes like DataInput / DataOutput and codecs.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10112">LUCENE-10112</a>: Improve LZ4 Compression performance with direct primitive read/writes.
+<br /><span class="attrib">(Tim Brooks, Uwe Schindler, Robert Muir, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10125">LUCENE-10125</a>: Optimize primitive writes in OutputStreamIndexOutput.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10143">LUCENE-10143</a>: Delegate primitive writes in RateLimitedIndexOutput.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10145">LUCENE-10145</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-10153">LUCENE-10153</a>: Faster flushes and merges of points by leveraging
+VarHandles.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10201">LUCENE-10201</a>: Spatial-Extras: Upgrading Spatial4j to 0.8 improving a varitety of minor things.
+See release notes. <a href="https://github.com/locationtech/spatial4j/releases/tag/spatial4j-0.8">https://github.com/locationtech/spatial4j/releases/tag/spatial4j-0.8</a>
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10062">LUCENE-10062</a>: Switch taxonomy faceting to use numeric doc values for storing ordinals instead of binary doc values
+with its own custom encoding.
+<br /><span class="attrib">(Greg Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.0.0.bug_fixes" href="javascript:toggleList('v9.0.0.bug_fixes')">Bug fixes</a>&nbsp;&nbsp;&nbsp;(15)
+    <ol id="v9.0.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9686">LUCENE-9686</a>: Fix read past EOF handling in DirectIODirectory.
+<br /><span class="attrib">(Zach Chen,
+Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8663">LUCENE-8663</a>: NRTCachingDirectory.slowFileExists may open a file while
+it's inaccessible.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9117">LUCENE-9117</a>: RamUsageEstimator hangs with AOT compilation. Removed any attempt to
+estimate Long.valueOf cache size.
+<br /><span class="attrib">(Cleber Muramoto, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9290">LUCENE-9290</a>: Don't assume that different XYPoint have different hash code
+<br /><span class="attrib">(Ignacio Vera via Mike Drob)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9372">LUCENE-9372</a>: Fix paths for cygwin/msys before gradle wrapper jar lookup.
+<br /><span class="attrib">(Peter Barna)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9365">LUCENE-9365</a>: FuzzyQuery was missing matches when prefix length was equal to the term length
+<br /><span class="attrib">(Mark Harwood, Mike Drob)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9580">LUCENE-9580</a>: Fix bug in the polygon tessellator when introducing collinear edges during polygon
+splitting.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9930">LUCENE-9930</a>: The Ukrainian analyzer was reloading its dictionary for every new
+TokenStreamComponents, which could lead to memory leaks.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9940">LUCENE-9940</a>: The order of disjuncts in DisjunctionMaxQuery does not matter
+for equality checks
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9971">LUCENE-9971</a>: Requesting facet counts for unseen dimensions in SortedSetDocValueFacetCounts and
+ConcurrentSortedSetDocValueFacetCounts now returns null / -1 instead of throwing
+IllegalArgumentException as per Javadoc spec in Facets.
+<br /><span class="attrib">(Alexander Lukyanchikov)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9823">LUCENE-9823</a>: Prevent unsafe rewrites for SynonymQuery and CombinedFieldQuery. Before, rewriting
+could slightly change the scoring when weights were specified.
+<br /><span class="attrib">(Naoto Minami via Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10047">LUCENE-10047</a>: Fix a value de-duping bug in LongValueFacetCounts and RangeFacetCounts
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10101">LUCENE-10101</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-9281">LUCENE-9281</a>: Use getField() instead of getDeclaredField() to
+minimize security impact by analysis SPI discovery.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10114">LUCENE-10114</a>: Remove unused byte order mark in Lucene90PostingsWriter. This
+was initially introduced by accident in Lucene 8.4.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10140">LUCENE-10140</a>: Fix cases where minimizing interval iterators could return
+incorrect matches
+<br /><span class="attrib">(Nikolay Khitrin, Alan Woodward)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.0.0.changes_in_backwards_compatibility_policy" href="javascript:toggleList('v9.0.0.changes_in_backwards_compatibility_policy')">Changes in Backwards Compatibility Policy</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v9.0.0.changes_in_backwards_compatibility_policy.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9904">LUCENE-9904</a>: regenerated UAX29URLEmailTokenizer and the corresponding analyzer with up-to-date top
+level domains. This may change the token sequence compared to previous Lucene versions.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9669">LUCENE-9669</a>: DirectoryReader#open now accepts an argument to open indices created with versions
+older than N-1. Lucene now can open indices created with a major version of N-2 in read-only mode.
+Opening an index created with a major version of N-2 with an IndexWriter is not supported.
+Further does lucene only support file-format compatibilty which enables reading of old indices while
+semantic changes like analysis or certain encoding on top of the file format are only supported on
+a best effort basis.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.0.0.build" href="javascript:toggleList('v9.0.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v9.0.0.build.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10198">LUCENE-10198</a>: <a href="http://issues.apache.org/jira/browse/LUCENE-10198">LUCENE-10198</a>: Allow external JAVA_OPTS in gradlew scripts; use sane defaults
+<br /><span class="attrib">(balmukund.mandal@intel.com, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10163">LUCENE-10163</a>: Move LICENSE and NOTICE files to top level to satisfy src artifact requirements
+<br /><span class="attrib">(janhoy)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.0.0.other" href="javascript:toggleList('v9.0.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(23)
+    <ol id="v9.0.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10122">LUCENE-10122</a>: Use NumericDocValues to store taxonomy parent array
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10136">LUCENE-10136</a>: allow 'var' declarations in source code
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9570">LUCENE-9570</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-9564">LUCENE-9564</a>: Apply google java format and enforce it on source Java files.
+Review diffs and correct automatic formatting oddities.
+<br /><span class="attrib">(Erick Erickson,
+Bruno Roustant, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9631">LUCENE-9631</a>: Properly override slice() on subclasses of OffsetRange.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9391">LUCENE-9391</a>: Upgrade HPPC to 0.8.2.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10021">LUCENE-10021</a>: Upgrade HPPC to 0.9.0. Replace usage of ...ScatterMap to ...HashMap.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8768">LUCENE-8768</a>: Fix Javadocs build in Java 11.
+<br /><span class="attrib">(Namgyu Kim)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9092">LUCENE-9092</a>: upgrade randomizedtesting to 2.7.5
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8656">LUCENE-8656</a>: Deprecations in FuzzyQuery and get compiler warnings out of
+queryparser code
+<br /><span class="attrib">(Alan Woodward, Erick Erickson)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9344">LUCENE-9344</a>: Convert .txt files to properly formatted .md files.
+<br /><span class="attrib">(Tomoko Uchida, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9267">LUCENE-9267</a>: Update MatchingQueries documentation to correct
+time unit.
+<br /><span class="attrib">(Pierre-Luc Perron via Mike Drob)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9411">LUCENE-9411</a>: Fail compilation on warnings, 9x gradle-only (Erick Erickson, Dawid Weiss)
+Deserves mention here as well as Lucene CHANGES.txt since it affects both.
+<p>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9077">LUCENE-9077</a> <a href="http://issues.apache.org/jira/browse/LUCENE-9433">LUCENE-9433</a>: Support Gradle build, remove Ant support from trunk
+<br /><span class="attrib">(Dawid Weiss, Erick Erickson, Uwe Schindler et.al.)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9215">LUCENE-9215</a>: Replace checkJavaDocs.py with doclet
+<br /><span class="attrib">(Robert Muir, Dawid Weiss, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9497">LUCENE-9497</a>: Integrate Error Prone, a static analysis tool during compilation
+<br /><span class="attrib">(Dawid Weiss, Varun Thacker)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9544">LUCENE-9544</a>: add regenerate gradle script for nori dictionary
+<br /><span class="attrib">(Namgyu Kim)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9627">LUCENE-9627</a>: Remove unused Lucene50FieldInfosFormat codec and small refactor some codecs
+to separate reading header/footer from reading content of the file.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9773">LUCENE-9773</a>: Upgrade icu to 68.2
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9822">LUCENE-9822</a>: Add assertion to PFOR exception encoding, documenting the BLOCK_SIZE assumption.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9883">LUCENE-9883</a>: Turn on ecj missingEnumCaseDespiteDefault setting.
+<br /><span class="attrib">(Zach Chen)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9705">LUCENE-9705</a>: Make new versions of all index formats for the Lucene90 codec and move
+the existing ones to the backwards codecs.
+<br /><span class="attrib">(Julie Tibshirani, Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9907">LUCENE-9907</a>: Remove dependency on PackedInts#getReader() from the current codecs and move the
+method to backwards codec.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10024">LUCENE-10024</a>: Catch NoSuchFileException when opening index directory with Luke.
+<br /><span class="attrib">(Michael Wechner, Tomoko Uchida)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="v8.11.0" href="javascript:toggleList('v8.11.0')">Release 8.11.0  [2021-11-16]</a></h2>
+<ul id="v8.11.0.list">
+  <li><a id="v8.11.0.api_changes" href="javascript:toggleList('v8.11.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.11.0.api_changes.list">
+      <li>(No changes)
+</li>
+    </ol>
+  </li>
+  <li><a id="v8.11.0.new_features" href="javascript:toggleList('v8.11.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.11.0.new_features.list">
+      <li>(No changes)
+</li>
+    </ol>
+  </li>
+  <li><a id="v8.11.0.improvements" href="javascript:toggleList('v8.11.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v8.11.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9662">LUCENE-9662</a>: Make CheckIndex concurrent by parallelizing index check across segments.
+<br /><span class="attrib">(Zach Chen, Mike McCandless, Dawid Weiss, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10103">LUCENE-10103</a>: Make QueryCache respect Accountable queries.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.11.0.optimizations" href="javascript:toggleList('v8.11.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v8.11.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9673">LUCENE-9673</a>: Substantially improve RAM efficiency of how MemoryIndex stores
+postings in memory, and reduced a bit of RAM overhead in
+IndexWriter's internal postings book-keeping
+<br /><span class="attrib">(mashudong)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10196">LUCENE-10196</a>: Improve IntroSorter with 3-ways partitioning.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.11.0.bug_fixes" href="javascript:toggleList('v8.11.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(6)
+    <ol id="v8.11.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10111">LUCENE-10111</a>: Missing calculating the bytes used of DocsWithFieldSet in NormValuesWriter.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10116">LUCENE-10116</a>: Missing calculating the bytes used of DocsWithFieldSet and currentValues in SortedSetDocValuesWriter.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10070">LUCENE-10070</a> Skip deleted docs when accumulating facet counts for all docs.
+<br /><span class="attrib">(Ankur Goel, Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10134">LUCENE-10134</a>: ConcurrentSortedSetDocValuesFacetCounts shouldn't share liveDocs Bits across threads.
+<br /><span class="attrib">(Ankur Goel)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10154">LUCENE-10154</a>: NumericLeafComparator to define getPointValues.
+<br /><span class="attrib">(Mayya Sharipova, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10208">LUCENE-10208</a>: Ensure that the minimum competitive score does not decrease in concurrent search.
+<br /><span class="attrib">(Jim Ferenczi, Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.11.0.build" href="javascript:toggleList('v8.11.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.11.0.build.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10104">LUCENE-10104</a>, <a href="http://issues.apache.org/jira/browse/SOLR-15631">SOLR-15631</a>: Upgrade forbiddenapis to version 3.2.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v8.11.0.other" href="javascript:toggleList('v8.11.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v8.11.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10098">LUCENE-10098</a>: Add docs/links to GermanAnalyzer describing how to decompound nouns.
+<br /><span class="attrib">(Robert Muir)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="older" href="javascript:toggleList('older')">Older Releases</a></h2>
+<div id="older.list">
+<h3><a id="v8.10.1" href="javascript:toggleList('v8.10.1')">Release 8.10.1  [2021-10-18]</a></h3>
+<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>
+<h3><a id="v8.10.0" href="javascript:toggleList('v8.10.0')">Release 8.10.0  [2021-09-27]</a></h3>
+<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></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;(12)
+    <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-10008">LUCENE-10008</a>: Respect ignoreCase in CommonGramsFilterFactory
+<br /><span class="attrib">(Vigya Sharma)</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;(1)
+    <ol id="v8.10.0.other.list">
+      <li>(No changes)
+</li>
+    </ol>
+  </li>
+</ul>
+<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>: IndexWriter#getFieldNames() method added to get fields present in index.
+This method was removed in <a href="http://issues.apache.org/jira/browse/LUCENE-8909">LUCENE-8909</a>.
+<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-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-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">(Patrick 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-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-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>: Adding 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-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-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><a href="http://issues.apache.org/jira/browse/LUCENE-9967">LUCENE-9967</a>: 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.new_features" href="javascript:toggleList('v8.8.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(5)
+    <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-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;(2)
+    <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>
+    </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">(Patrick 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;(4)
+    <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>
+    </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">(Patrick 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>

[... 17436 lines stripped ...]