You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ja...@apache.org on 2023/01/25 18:36:59 UTC

svn commit: r59585 [2/15] - in /dev/lucene/lucene-9.5.0-RC1-rev-13803aa6ea7fee91f798cfeded4296182ac43a21: ./ 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.5.0-RC1-rev-13803aa6ea7fee91f798cfeded4296182ac43a21/lucene/changes/Changes.html
==============================================================================
--- dev/lucene/lucene-9.5.0-RC1-rev-13803aa6ea7fee91f798cfeded4296182ac43a21/lucene/changes/Changes.html (added)
+++ dev/lucene/lucene-9.5.0-RC1-rev-13803aa6ea7fee91f798cfeded4296182ac43a21/lucene/changes/Changes.html Wed Jan 25 18:36:57 2023
@@ -0,0 +1,19610 @@
+<!--
+**********************************************************
+** 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\\\\.5\\\\.0|v9\\\\.4\\\\.2)");
+    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.5.0.list' 
+            && list.id != 'v9.4.2.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.5.0' || anchor.id == 'v9.4.2') {
+            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.5.0" href="javascript:toggleList('v9.5.0')">Release 9.5.0 </a></h2>
+<ul id="v9.5.0.list">
+  <li><a id="v9.5.0.api_changes" href="javascript:toggleList('v9.5.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(20)
+    <ol id="v9.5.0.api_changes.list">
+      <li><a href="https://github.com/apache/lucene/pull/12093">GITHUB#12093</a>: Deprecate support for UTF8TaxonomyWriterCache and changed default to LruTaxonomyWriterCache.
+Please use LruTaxonomyWriterCache instead.
+<br /><span class="attrib">(Vigya Sharma)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11998">GITHUB#11998</a>: Add new stored fields and termvectors interfaces: IndexReader.storedFields()
+and IndexReader.termVectors(). Deprecate IndexReader.document() and IndexReader.getTermVector().
+The new APIs do not rely upon ThreadLocal storage for each index segment, which can greatly
+reduce RAM requirements when there are many threads and/or segments.
+<br /><span class="attrib">(Adrien Grand, Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11742">GITHUB#11742</a>: MatchingFacetSetsCounts#getTopChildren now properly returns "top" children instead
+of all children.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11772">GITHUB#11772</a>: Removed native subproject and WindowsDirectory implementation from lucene.misc. Recommendation:
+use MMapDirectory implementation on Windows.
+<br /><span class="attrib">(Robert Muir, Uwe Schindler, Dawid Weiss)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11804">GITHUB#11804</a>: FacetsCollector#collect is no longer final, allowing extension.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11761">GITHUB#11761</a>: TieredMergePolicy now allowed a maximum allowable deletes percentage of down to 5%, and the default
+maximum allowable deletes percentage is changed from 33% to 20%.
+<br /><span class="attrib">(Marc D'Mello)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11822">GITHUB#11822</a>: Configure replicator PrimaryNode replia shutdown timeout.
+<br /><span class="attrib">(Steven Schlansker)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11930">GITHUB#11930</a>: Added IOContext#LOAD for files that are a small fraction of the
+total index size and heavily accessed with a random access pattern. Some
+Directory implementations may choose to load files that use this IOContext in
+memory to provide stronger guarantees on query latency.
+<br /><span class="attrib">(Adrien Grand, Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11941">GITHUB#11941</a>: QueryBuilder#add and #newSynonymQuery methods now take a `field` parameter,
+to avoid possible exceptions when building queries from an empty term list.  The helper
+TermAndBoost class now holds a BytesRef rather than a Term.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11961">GITHUB#11961</a>: VectorValues#EMPTY was removed as this instance was not
+necessary and also illegal as it reported a number of dimensions equal to
+zero.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11962">GITHUB#11962</a>: VectorValues#cost() now delegates to VectorValues#size().
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11984">GITHUB#11984</a>: Improved TimeLimitBulkScorer to check the timeout at exponantial rate.
+<br /><span class="attrib">(Costin Leau)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12004">GITHUB#12004</a>: Add new KnnByteVectorQuery for querying vector fields that are encoded as BYTE. Removes the ability to
+use KnnVectorQuery against fields encoded as BYTE
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11997">GITHUB#11997</a>: Introduce IntField, LongField, FloatField and DoubleField.
+These new fields index both 1D points and sorted numeric doc values and
+provide best performance for filtering and sorting.
+<br /><span class="attrib">(Francisco Fernández Castaño, Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12066">GITHUB#12066</a>: Retire/deprecate instance method MMapDirectory#setUseUnmap().
+Like the new setting for MemorySegments, this feature is enabled by default and
+can only be disabled globally by passing the following sysprop on Java command line:
+"-Dorg.apache.lucene.store.MMapDirectory.enableUnmapHack=false"
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12038">GITHUB#12038</a>: Deprecate non-NRT replication support.
+Please migrate to org.apache.lucene.replicator.nrt instead.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12087">GITHUB#12087</a>: Move DocValuesNumbersQuery from sandbox to NumericDocValuesField#newSlowSetQuery
+and SortedNumericDocValuesField#newSlowSetQuery. IntField, LongField, FloatField, and DoubleField
+implement newSetQuery with best-practice use of IndexOrDocValuesQuery.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12064">GITHUB#12064</a>: Create new KnnByteVectorField, ByteVectorValues and KnnVectorsReader#getByteVectorValues(String)
+that are specialized for byte-sized vectors, and clarify the public API by making a clear distinction
+between classes that produce and read float vectors and those that produce and read byte vectors.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12101">GITHUB#12101</a>: Remove VectorValues#binaryValue(). Vectors should only be
+accessed through their high-level representation, via
+VectorValues#vectorValue().
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12105">GITHUB#12105</a>: Deprecate KnnVectorField in favour of KnnFloatVectorField,
+KnnVectoryQuery in favour of KnnFloatVectorQuery, and LeafReader#getVectorValues
+in favour of LeafReader#getFloatVectorValues.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.5.0.new_features" href="javascript:toggleList('v9.5.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(7)
+    <ol id="v9.5.0.new_features.list">
+      <li><a href="https://github.com/apache/lucene/pull/11795">GITHUB#11795</a>: Add ByteWritesTrackingDirectoryWrapper to expose metrics for bytes merged, flushed, and overall
+write amplification factor.
+<br /><span class="attrib">(Marc D'Mello)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11929">GITHUB#11929</a>: MMapDirectory gives more granular control on which files to
+preload.
+<br /><span class="attrib">(Adrien Grand, Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11999">GITHUB#11999</a>: MemoryIndex now supports stored fields.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11997">GITHUB#11997</a>: Add IntField, LongField, FloatField and DoubleField: easy to
+use numeric fields that perform well both for filtering and sorting.
+<br /><span class="attrib">(Francisco Fernández Castaño)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12033">GITHUB#12033</a>: Support for Java 19 foreign memory support is now enabled by default,
+no need to pass "--enable-preview" on the command line. If exactly Java 19 is used,
+MMapDirectory will mmap Lucene indexes in chunks of 16 GiB (instead of 1 GiB) and
+indexes closed while queries are running can no longer crash the JVM.
+To disable this feature, pass the following sysprop on Java command line:
+"-Dorg.apache.lucene.store.MMapDirectory.enableMemorySegments=false"
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11869">GITHUB#11869</a>: RangeOnRangeFacetCounts added, supporting numeric range "relationship" faceting over docvalue-stored
+ranges.
+<br /><span class="attrib">(Marc D'Mello)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10626">LUCENE-10626</a> Hunspell: add tools to aid dictionary editing:
+analysis introspection, stem expansion and stem/flag suggestion
+<br /><span class="attrib">(Peter Gromov)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.5.0.improvements" href="javascript:toggleList('v9.5.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="v9.5.0.improvements.list">
+      <li><a href="https://github.com/apache/lucene/pull/11785">GITHUB#11785</a>: Improve Tessellator performance by delaying calls to the method
+#isIntersectingPolygon
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/687">GITHUB#687</a>: speed up IndexSortSortedNumericDocValuesRangeQuery#BoundedDocIdSetIterator
+construction using bkd binary search.
+<br /><span class="attrib">(Jianping Weng)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11985">GITHUB#11985</a>: ExitableTerms to override Terms#getMin and Terms#getMax in order to avoid
+iterating through the terms when the wrapped implementation caches such values.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11860">GITHUB#11860</a>: Improve storage efficiency of connections in the HNSW graph that Lucene uses for
+vector search.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12008">GITHUB#12008</a>: Clean up LongRange#verifyAndEncode logic to remove unnecessary NaN checks.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12003">GITHUB#12003</a>: Minor cleanup/improvements to IndexSortSortedNumericDocValuesRangeQuery.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12016">GITHUB#12016</a>: Upgrade lucene/expressions to use antlr 4.11.1
+<br /><span class="attrib">(Andriy Redko)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12034">GITHUB#12034</a>: Remove null check in IndexReaderContext#leaves() usages
+<br /><span class="attrib">(Erik Pellizzon)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12070">GITHUB#12070</a>: Compound file creation is no longer subject to merge throttling.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.5.0.bug_fixes" href="javascript:toggleList('v9.5.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(15)
+    <ol id="v9.5.0.bug_fixes.list">
+      <li><a href="https://github.com/apache/lucene/pull/11726">GITHUB#11726</a>: Indexing term vectors on large documents could fail due to
+trying to apply a dictionary whose size is greater than the maximum supported
+window size for LZ4.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11768">GITHUB#11768</a>: Taxonomy and SSDV faceting now correctly breaks ties by preferring smaller ordinal
+values.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11907">GITHUB#11907</a>: Fix latent casting bugs in BKDWriter.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11954">GITHUB#11954</a>: Remove QueryTimeout#isTimeoutEnabled method and move check to caller.
+<br /><span class="attrib">(Shubham Chaudhary)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11950">GITHUB#11950</a>: Fix NPE in BinaryRangeFieldRangeQuery variants when the queried field doesn't exist
+in a segment or is of the wrong type.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11990">GITHUB#11990</a>: PassageSelector now has a larger minimum size for its priority queue,
+so that subsequent passage merges don't mean that we return too few passages in
+total.
+<br /><span class="attrib">(Alan Woodward, Dawid Weiss)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11986">GITHUB#11986</a>: Fix algorithm that chooses the bridge between a polygon and a hole when there is
+common vertex.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12020">GITHUB#12020</a>: Fixes bug whereby very flat polygons can incorrectly contain intersecting geometries.
+<br /><span class="attrib">(Craig Taverner)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12058">GITHUB#12058</a>: Fix detection of Hotspot in TestRamUsageEstimator so it works with OpenJ9.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12046">GITHUB#12046</a>: Out of boundary in CombinedFieldQuery#addTerm.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12072">GITHUB#12072</a>: Fix exponential runtime for nested BooleanQuery#rewrite when a
+BooleanClause is non-scoring.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11807">GITHUB#11807</a>: Don't rewrite queries in unified highlighter.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12088">GITHUB#12088</a>: WeightedSpanTermExtractor should not throw UnsupportedOperationException
+when it encounters a FieldExistsQuery.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12084">GITHUB#12084</a>: Same bound with fallbackQuery.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12077">GITHUB#12077</a>: WordBreakSpellChecker now correctly respects maxEvaluations
+<br /><span class="attrib">(hossman)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.5.0.optimizations" href="javascript:toggleList('v9.5.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(18)
+    <ol id="v9.5.0.optimizations.list">
+      <li><a href="https://github.com/apache/lucene/pull/11738">GITHUB#11738</a>: Optimize MultiTermQueryConstantScoreWrapper when a term is present that matches all
+docs in a segment.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11735">GITHUB#11735</a>: KeywordRepeatFilter + OpenNLPLemmatizer always drops last token of a stream.
+<br /><span class="attrib">(Luke Kot-Zaniewski)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11771">GITHUB#11771</a>: KeywordRepeatFilter + OpenNLPLemmatizer sometimes arbitrarily exits token stream.
+<br /><span class="attrib">(Luke Kot-Zaniewski)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11803">GITHUB#11803</a>: DrillSidewaysScorer has improved to leverage "advance" instead of "next" where
+possible, and splits out first and second phase checks to delay match confirmation.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11828">GITHUB#11828</a>: Tweak TermInSetQuery "dense" optimization to only require all terms present in a
+given field to match a term (rather than all docs in a segment). This is consistent with
+MultiTermQueryConstantScoreWrapper.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11876">GITHUB#11876</a>: Use ByteArrayComparator to speed up PointInSetQuery in single dimension case.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11880">GITHUB#11880</a>: Use ByteArrayComparator to speed up BinaryRangeFieldRangeQuery, RangeFieldQuery
+LatLonPointDistanceFeatureQuery and CheckIndex.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11881">GITHUB#11881</a>: Further optimize drill-sideways scoring by specializing the single dimension case
+and borrowing some concepts from "min should match" scoring.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11884">GITHUB#11884</a>: Simplify the logic of matchAll() in IndexSortSortedNumericDocValuesRangeQuery.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11895">GITHUB#11895</a>: count() in BooleanQuery could be early quit.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11972">GITHUB#11972</a>: `IndexSortSortedNumericDocValuesRangeQuery` can now also
+optimize query execution with points for descending sorts.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12006">GITHUB#12006</a>: Do ints compare instead of ArrayUtil#compareUnsigned4 in LatlonPointQueries.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12011">GITHUB#12011</a>: Minor speedup to flushing long postings lists when an index
+sort is configured.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12017">GITHUB#12017</a>: Aggressive count in BooleanWeight.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12079">GITHUB#12079</a>: Faster merging of 1D points.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12081">GITHUB#12081</a>: Small merging speedup on sorted indexes.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12078">GITHUB#12078</a>: Enhance XXXField#newRangeQuery.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11857">GITHUB#11857</a>, <a href="https://github.com/apache/lucene/pull/11859">GITHUB#11859</a>, <a href="https://github.com/apache/lucene/pull/11893">GITHUB#11893</a>, <a href="https://github.com/apache/lucene/pull/11909">GITHUB#11909</a>: Hunspell: improved suggestion performance
+<br /><span class="attrib">(Peter Gromov)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.5.0.other" href="javascript:toggleList('v9.5.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="v9.5.0.other.list">
+      <li><a href="https://github.com/apache/lucene/pull/11856">GITHUB#11856</a>: Fix nanos to millis conversion for tests
+<br /><span class="attrib">(Marios Trivyzas)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10423">LUCENE-10423</a>: Remove usages of System.currentTimeMillis() from tests.
+<br /><span class="attrib">(Marios Trivyzas)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11811">GITHUB#11811</a>: Upgrade google java format to 1.15.0
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11834">GITHUB#11834</a>: Upgrade forbiddenapis to version 3.4.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10635">LUCENE-10635</a>: Ensure test coverage for WANDScorer by using a test query.
+<br /><span class="attrib">(Zach Chen, Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11752">GITHUB#11752</a>: Added interface to relate a LatLonShape with another shape represented as Component2D.
+<br /><span class="attrib">(Navneet Verma)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11983">GITHUB#11983</a>: Make constructors for OffsetFromPositions and OffsetsFromMatchIterator
+public.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10546">LUCENE-10546</a>: Update Faceting user guide.
+<br /><span class="attrib">(Egor Potemkin)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/12099">GITHUB#12099</a>: Introduce support in KnnVectorQuery for getters.
+<br /><span class="attrib">(Alessandro Benedetti)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.5.0.build" href="javascript:toggleList('v9.5.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.5.0.build.list">
+      <li><a href="https://github.com/apache/lucene/pull/11886">GITHUB#11886</a>: Upgrade to gradle 7.5.1
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="v9.4.2" href="javascript:toggleList('v9.4.2')">Release 9.4.2  [2022-11-21]</a></h2>
+<ul id="v9.4.2.list">
+  <li><a id="v9.4.2.bug_fixes" href="javascript:toggleList('v9.4.2.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v9.4.2.bug_fixes.list">
+      <li><a href="https://github.com/apache/lucene/pull/11905">GITHUB#11905</a>: Fix integer overflow when seeking the vector index for connections in a single segment.
+ This addresses a bug that was introduced in 9.2.0 where having many vectors is not handled well
+ in the vector connections reader.
+<p>
+</li>
+      <li><a href="https://github.com/apache/lucene/pull/11939">GITHUB#11939</a>: Fix incorrect cost calculation in DocIdSetBuilder after upgradeToBitSet when doc list is growing.
+This addresses a bug where the cost of TermRangeQuery/TermInSetQuery and some other queries will be highly underestimated.
+<p>
+</li>
+    </ol>
+  </li>
+  <li><a id="v9.4.2.improvements" href="javascript:toggleList('v9.4.2.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v9.4.2.improvements.list">
+      <li><a href="https://github.com/apache/lucene/pull/11912">GITHUB#11912</a>, <a href="https://github.com/apache/lucene/pull/11918">GITHUB#11918</a>: Port generic exception handling from MemorySegmentIndexInput
+to ByteBufferIndexInput. This also adds the invalid position while seeking or reading
+to the exception message. Allows better debugging and analysis of bugs like <a href="https://github.com/apache/lucene/pull/11905">GITHUB#11905</a>.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11916">GITHUB#11916</a>: improve checkindex to be more thorough for vectors.
+<br /><span class="attrib">(Ben Trent)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="older" href="javascript:toggleList('older')">Older Releases</a></h2>
+<div id="older.list">
+<h3><a id="v9.4.1" href="javascript:toggleList('v9.4.1')">Release 9.4.1  [2022-10-24]</a></h3>
+<ul id="v9.4.1.list">
+  <li><a id="v9.4.1.bug_fixes" href="javascript:toggleList('v9.4.1.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.4.1.bug_fixes.list">
+      <li><a href="https://github.com/apache/lucene/pull/11858">GITHUB#11858</a>: Fix kNN vectors format validation on large segments. This
+ addresses a regression in 9.4.0 where validation could fail, preventing
+ further writes or searches on the index.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v9.4.0" href="javascript:toggleList('v9.4.0')">Release 9.4.0  [2022-09-30]</a></h3>
+<ul id="v9.4.0.list">
+  <li><a id="v9.4.0.api_changes" href="javascript:toggleList('v9.4.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.4.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10577">LUCENE-10577</a>: Add VectorEncoding to enable byte-encoded HNSW vectors
+<br /><span class="attrib">(Michael Sokolov, Julie Tibshirani)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.4.0.new_features" href="javascript:toggleList('v9.4.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v9.4.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10654">LUCENE-10654</a>: Add new ShapeDocValuesField for LatLonShape and XYShape.
+<br /><span class="attrib">(Nick Knize)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10629">LUCENE-10629</a>: Support match set filtering with a query in MatchingFacetSetCounts.
+<br /><span class="attrib">(Stefan Vodita, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10633">LUCENE-10633</a>: SortField#setOptimizeSortWithIndexedData and
+SortField#getOptimizeSortWithIndexedData were introduced to provide
+an option to disable sort optimization for various sort fields.
+<br /><span class="attrib">(Mayya Sharipova)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/912">GITHUB#912</a>: Support for Java 19 foreign memory support was added. Applications started
+with command line parameter "java --enable-preview" will automatically use the new
+foreign memory API of Java 19 to access indexes on disk with MMapDirectory. This is
+an opt-in feature and requires explicit Java command line flag! When enabled, Lucene logs
+a notice using java.util.logging. Please test thoroughly and report bugs/slowness to Lucene's
+mailing list. When the new API is used, MMapDirectory will mmap Lucene indexes in chunks of
+16 GiB (instead of 1 GiB) and indexes closed while queries are running can no longer crash
+the JVM.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.4.0.improvements" href="javascript:toggleList('v9.4.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v9.4.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10592">LUCENE-10592</a>: Build HNSW Graph on indexing.
+<br /><span class="attrib">(Mayya Sharipova, Adrien Grand, Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10207">LUCENE-10207</a>: TermInSetQuery can now provide a ScoreSupplier with cost estimation, making it
+usable in IndexOrDocValuesQuery.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10216">LUCENE-10216</a>: Use MergePolicy to define and MergeScheduler to trigger the reader merges
+required by addIndexes(CodecReader[]) API.
+<br /><span class="attrib">(Vigya Sharma, Michael McCandless)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11715">GITHUB#11715</a>: Add Integer awareness to RamUsageEstimator.sizeOf
+<br /><span class="attrib">(Mike Drob)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.4.0.optimizations" href="javascript:toggleList('v9.4.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="v9.4.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10661">LUCENE-10661</a>: Reduce memory copy in BytesStore.
+<br /><span class="attrib">(luyuncheng)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/1020">GITHUB#1020</a>: Support #scoreSupplier and small optimizations to DocValuesRewriteMethod.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10633">LUCENE-10633</a>: Added support for dynamic pruning to queries sorted by a string
+field that is indexed with terms and SORTED or SORTED_SET doc values.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10627">LUCENE-10627</a>: Using ByteBuffersDataInput reduce memory copy on compressing data.
+<br /><span class="attrib">(luyuncheng)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/1062">GITHUB#1062</a>: Optimize TermInSetQuery when a term is present that matches all docs in a segment.
+<br /><span class="attrib">(Greg Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.4.0.bug_fixes" href="javascript:toggleList('v9.4.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(7)
+    <ol id="v9.4.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10663">LUCENE-10663</a>: Fix KnnVectorQuery explain with multiple segments.
+<br /><span class="attrib">(Shiming Li)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10673">LUCENE-10673</a>: Improve check of equality for latitudes for spatial3d GeoBoundingBox
+<br /><span class="attrib">(ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10678">LUCENE-10678</a>: Fix potential overflow when building a BKD tree with more than 4 billion points. The overflow
+occurs when computing the partition point.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10644">LUCENE-10644</a>: Facets#getAllChildren testing should ignore child order.
+<br /><span class="attrib">(Yuting Gan)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10665">LUCENE-10665</a>, <a href="https://github.com/apache/lucene/pull/11701">GITHUB#11701</a>: Fix classloading deadlock in analysis factories / AnalysisSPILoader
+initialization.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10674">LUCENE-10674</a>: Ensure BitSetConjDISI returns NO_MORE_DOCS when sub-iterator exhausts.
+<br /><span class="attrib">(Jack Mazanec)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/11794">GITHUB#11794</a>: Guard FieldExistsQuery against null pointers
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.4.0.build" href="javascript:toggleList('v9.4.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v9.4.0.build.list">
+      <li><a href="https://github.com/apache/lucene/pull/11720">GITHUB#11720</a>: Upgrade randomizedtesting to 2.8.1 (potential fix for odd wall clock - related
+timeout failures).
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10669">LUCENE-10669</a>: The build should be more helpful when generated resources are touched
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.4.0.other" href="javascript:toggleList('v9.4.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.4.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10559">LUCENE-10559</a>: Add Prefilter Option to KnnGraphTester
+<br /><span class="attrib">(Kaival Parikh)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v9.3.0" href="javascript:toggleList('v9.3.0')">Release 9.3.0  [2022-07-29]</a></h3>
+<ul id="v9.3.0.list">
+  <li><a id="v9.3.0.api_changes" href="javascript:toggleList('v9.3.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v9.3.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10603">LUCENE-10603</a>: SortedSetDocValues#NO_MORE_ORDS marked @deprecated in favor of iterating with
+SortedSetDocValues#docValueCount().
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/978">GITHUB#978</a>: Deprecate (remove in Lucene 10) obsolete constants in oal.util.Constants; remove
+code which is no longer executed after Java 9.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.3.0.new_features" href="javascript:toggleList('v9.3.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v9.3.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10550">LUCENE-10550</a>: Add getAllChildren functionality to facets
+<br /><span class="attrib">(Yuting Gan)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10274">LUCENE-10274</a>: Added facetsets module for high dimensional (hyper-rectangle) faceting
+</li>
+      <li>(Shai Erera, Marc D'Mello, Greg Miller)
+<p>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10151">LUCENE-10151</a> Enable timeout support in IndexSearcher.
+<br /><span class="attrib">(Deepika Sharma)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.3.0.improvements" href="javascript:toggleList('v9.3.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="v9.3.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10078">LUCENE-10078</a>: Merge on full flush is now enabled by default with a timeout of
+500ms.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10585">LUCENE-10585</a>: Facet module code cleanup (copy/paste scrubbing, simplification and some very minor
+optimization tweaks).
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10603">LUCENE-10603</a>: Update SortedSetDocValues iteration to use SortedSetDocValues#docValueCount().
+<br /><span class="attrib">(Greg Miller, Stefan Vodita)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10619">LUCENE-10619</a>: Optimize the writeBytes in TermsHashPerField.
+<br /><span class="attrib">(Tang Donghai)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/983">GITHUB#983</a>: AbstractSortedSetDocValueFacetCounts internal code cleanup/refactoring.
+<br /><span class="attrib">(Greg Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.3.0.optimizations" href="javascript:toggleList('v9.3.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(11)
+    <ol id="v9.3.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8519">LUCENE-8519</a>: MultiDocValues.getNormValues should not call getMergedFieldInfos
+<br /><span class="attrib">(Rushabh Shah)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/961">GITHUB#961</a>: BooleanQuery can return quick counts for simple boolean queries.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10618">LUCENE-10618</a>: Implement BooleanQuery rewrite rules based for minimumShouldMatch.
+<br /><span class="attrib">(Fang Hou)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10480">LUCENE-10480</a>: Implement Block-Max-Maxscore scorer for 2 clauses disjunction.
+<br /><span class="attrib">(Zach Chen, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10606">LUCENE-10606</a>: For KnnVectorQuery, optimize case where filter is backed by BitSetIterator
+<br /><span class="attrib">(Kaival Parikh)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10593">LUCENE-10593</a>: Vector similarity function and NeighborQueue reverse removal.
+<br /><span class="attrib">(Alessandro Benedetti)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/984">GITHUB#984</a>: Use primitive type data structures in FloatTaxonomyFacets and IntTaxonomyFacets
+#getAllChildren() internal implementation to avoid some garbage creation.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/1010">GITHUB#1010</a>: Specialize ordinal encoding for common case in SortedSetDocValues.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10657">LUCENE-10657</a>: CopyBytes now saves one memory copy on ByteBuffersDataOutput.
+<br /><span class="attrib">(luyuncheng)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/1007">GITHUB#1007</a>: Optimize IntersectVisitor#visit implementations for certain bulk-add cases.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10653">LUCENE-10653</a>: BlockMaxMaxscoreScorer uses heapify instead of individual adds.
+<br /><span class="attrib">(Greg Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.3.0.changes_in_runtime_behavior" href="javascript:toggleList('v9.3.0.changes_in_runtime_behavior')">Changes in runtime behavior</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.3.0.changes_in_runtime_behavior.list">
+      <li><a href="https://github.com/apache/lucene/pull/978">GITHUB#978</a>: IndexWriter diagnostics written to index only contain java's runtime version
+and vendor.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.3.0.bug_fixes" href="javascript:toggleList('v9.3.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(13)
+    <ol id="v9.3.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10574">LUCENE-10574</a>: Prevent pathological O(N^2) merging.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10584">LUCENE-10584</a>: Properly support #getSpecificValue for hierarchical dims in SSDV faceting.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10582">LUCENE-10582</a>: Fix merging of overridden CollectionStatistics in CombinedFieldQuery
+<br /><span class="attrib">(Yannick Welsch)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10563">LUCENE-10563</a>: Fix failure to tessellate complex polygon
+<br /><span class="attrib">(Craig Taverner)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10605">LUCENE-10605</a>: Fix error in 32bit jvm object alignment gap calculation
+<br /><span class="attrib">(Sun Wuqiang)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/956">GITHUB#956</a>: Make sure KnnVectorQuery applies search boost.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10598">LUCENE-10598</a>: SortedSetDocValues#docValueCount() should be always greater than zero.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10600">LUCENE-10600</a>: SortedSetDocValues#docValueCount should be an int, not long
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10611">LUCENE-10611</a>: Fix failure when KnnVectorQuery has very selective filter
+<br /><span class="attrib">(Kaival Parikh)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10607">LUCENE-10607</a>: Fix potential integer overflow in maxArcs computions
+<br /><span class="attrib">(Tang Donghai)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/986">GITHUB#986</a>: Fix FieldExistsQuery rewrite when all docs have vectors.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10623">LUCENE-10623</a>: Error implementation of docValueCount for SortingSortedSetDocValues
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/1028">GITHUB#1028</a>: Fix error in TieredMergePolicy
+<br /><span class="attrib">(Lin Jian)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.3.0.other" href="javascript:toggleList('v9.3.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v9.3.0.other.list">
+      <li><a href="https://github.com/apache/lucene/pull/991">GITHUB#991</a>: Update randomizedtesting to 2.8.0, hppc to 0.9.1, morfologik to 2.1.9.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10370">LUCENE-10370</a>: pass proper classpath/module arguments for forking jvms from within tests.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10604">LUCENE-10604</a>: Improve ability to test and debug triangulation algorithm in Tessellator.
+<br /><span class="attrib">(Craig Taverner)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/922">GITHUB#922</a>: Remove unused and confusing FacetField indexing options
+<br /><span class="attrib">(Gautam Worah)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.3.0.build" href="javascript:toggleList('v9.3.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.3.0.build.list">
+      <li><a href="https://github.com/apache/lucene/pull/976">GITHUB#976</a>: Exclude Lucene's own JAR files from classpath entries in Eclipse config.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v9.2.0" href="javascript:toggleList('v9.2.0')">Release 9.2.0  [2022-05-23]</a></h3>
+<ul id="v9.2.0.list">
+  <li><a id="v9.2.0.api_changes" href="javascript:toggleList('v9.2.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v9.2.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10325">LUCENE-10325</a>: Facets API extended to support getTopFacets.
+<br /><span class="attrib">(Yuting Gan)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10482">LUCENE-10482</a>: Allow users to create their own DirectoryTaxonomyReaders with empty taxoArrays instead of letting the
+taxoEpoch decide. Add a test case that demonstrates the inconsistencies caused when you reuse taxoArrays on older
+checkpoints.
+<br /><span class="attrib">(Gautam Worah)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10558">LUCENE-10558</a>: Add new constructors to Kuromoji and Nori dictionary classes to support classpath /
+module system usage. It is now possible to use JDK's Class/ClassLoader/Module#getResource(...) apis
+and pass their returned URL to dictionary constructors to load resources from Classpath or Module
+resources.
+<br /><span class="attrib">(Uwe Schindler, Tomoko Uchida, Mike Sokolov)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.2.0.new_features" href="javascript:toggleList('v9.2.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(6)
+    <ol id="v9.2.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10312">LUCENE-10312</a>: Add PersianStemmer based on the Arabic stemmer.
+<br /><span class="attrib">(Ramin Alirezaee)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10539">LUCENE-10539</a>: Return a stream of completions from FSTCompletion.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10385">LUCENE-10385</a>: Implement Weight#count on IndexSortSortedNumericDocValuesRangeQuery
+to speed up computing the number of hits when possible.
+<br /><span class="attrib">(Lu Xugang, Luca Cavanna, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10422">LUCENE-10422</a>: Monitor Improvements: `Monitor` can use a custom `Directory`
+implementation. `Monitor` can be created with a readonly `QueryIndex` in order to
+have readonly `Monitor` instances.
+<br /><span class="attrib">(Niko Usai)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10456">LUCENE-10456</a>: Implement rewrite and Weight#count for MultiRangeQuery
+by merging overlapping ranges .
+<br /><span class="attrib">(Jianping Weng)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10444">LUCENE-10444</a>: Support alternate aggregation functions in association facets.
+<br /><span class="attrib">(Greg Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.2.0.improvements" href="javascript:toggleList('v9.2.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(6)
+    <ol id="v9.2.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10229">LUCENE-10229</a>: return -1 for unknown offsets in ExtendedIntervalsSource. Modify highlighting to
+work properly with or without offsets.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10494">LUCENE-10494</a>: Implement method to bulk add all collection elements to a PriorityQueue.
+<br /><span class="attrib">(Bauyrzhan Sakhariyev)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10484">LUCENE-10484</a>: Add support for concurrent random sampling by calling
+RandomSamplingFacetsCollector#createManager.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10467">LUCENE-10467</a>: Throws IllegalArgumentException for Facets#getAllDims and Facets#getTopChildren
+if topN &lt;= 0.
+<br /><span class="attrib">(Yuting Gan)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9848">LUCENE-9848</a>: Correctly sort HNSW graph neighbors when applying diversity criterion
+<br /><span class="attrib">(Mayya
+Sharipova, Michael Sokolov)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10527">LUCENE-10527</a>: Use 2*maxConn for the last layer in HNSW
+<br /><span class="attrib">(Mayya Sharipova)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.2.0.optimizations" href="javascript:toggleList('v9.2.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(16)
+    <ol id="v9.2.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10555">LUCENE-10555</a>: avoid NumericLeafComparator#iteratorCost repeated initialization
+when NumericLeafComparator#setScorer is called.
+<br /><span class="attrib">(Jianping Weng)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10452">LUCENE-10452</a>: Hunspell: call checkCanceled less frequently to reduce the overhead
+<br /><span class="attrib">(Peter Gromov)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10451">LUCENE-10451</a>: Hunspell: don't perform potentially expensive spellchecking after timeout
+<br /><span class="attrib">(Peter Gromov)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10418">LUCENE-10418</a>: More `Query#rewrite` optimizations for the non-scoring case.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10436">LUCENE-10436</a>: Deprecate DocValuesFieldExistsQuery, NormsFieldExistsQuery and KnnVectorFieldExistsQuery
+with FieldExistsQuery.
+<br /><span class="attrib">(Zach Chen, Michael McCandless, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10481">LUCENE-10481</a>: FacetsCollector will not request scores if it does not use them.
+<br /><span class="attrib">(Mike Drob)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10503">LUCENE-10503</a>: Potential speedup for pure disjunctions whose clauses produce
+scores that are very close to each other.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10315">LUCENE-10315</a>: Use SIMD instructions to decode BKD doc IDs.
+<br /><span class="attrib">(Guo Feng, Adrien Grand, Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-8836">LUCENE-8836</a>: Speed up calls to TermsEnum#lookupOrd on doc values terms enums
+and sequences of increasing ords.
+<br /><span class="attrib">(Bruno Roustant, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10536">LUCENE-10536</a>: Doc values terms dictionaries now use the first (uncompressed)
+term of each block as a dictionary when compressing suffixes of the other 63
+terms of the block.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10411">LUCENE-10411</a>: Add nearest neighbors vectors support to ExitableDirectoryReader.
+<br /><span class="attrib">(Zach Chen, Adrien Grand, Julie Tibshirani, Tomoko Uchida)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10542">LUCENE-10542</a>: FieldSource exists implementations can avoid value retrieval
+<br /><span class="attrib">(Kevin Risden)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10534">LUCENE-10534</a>: MinFloatFunction / MaxFloatFunction exists check can be slow
+<br /><span class="attrib">(Kevin Risden)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10496">LUCENE-10496</a>: Queries sorted by field now better handle the degenerate case
+when the search order and the index order are in opposite directions.
+<br /><span class="attrib">(Jianping Weng)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10502">LUCENE-10502</a>: Use IndexedDISI to store docIds and DirectMonotonicWriter/Reader to handle
+ordToDoc in HNSW vectors
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10488">LUCENE-10488</a>: Facets#getTopDims optimized for taxonomy faceting and
+ConcurrentSortedSetDocValuesFacetCounts.
+<br /><span class="attrib">(Yuting Gan)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.2.0.bug_fixes" href="javascript:toggleList('v9.2.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(13)
+    <ol id="v9.2.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10477">LUCENE-10477</a>: Highlighter: WeightedSpanTermExtractor.extractWeightedSpanTerms to Query#rewrite
+multiple times if necessary.
+<br /><span class="attrib">(Christine Poerschke, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10491">LUCENE-10491</a>: A correctness bug in the way scores are provided within TaxonomyFacetSumValueSource
+was fixed.
+<br /><span class="attrib">(Michael McCandless, Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10466">LUCENE-10466</a>: Ensure IndexSortSortedNumericDocValuesRangeQuery handles sort field
+types besides LONG
+<br /><span class="attrib">(Andriy Redko)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10292">LUCENE-10292</a>: Suggest: Fix AnalyzingInfixSuggester / BlendedInfixSuggester to correctly return
+existing lookup() results during concurrent build().  Fix other FST based suggesters so that
+getCount() returned results consistent with lookup() during concurrent build().
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10508">LUCENE-10508</a>: Fixes some edge cases where GeoArea were built in a way that vertical planes
+could not evaluate their sign, either because the planes where the same or the center between those
+planes was lying in one of the planes.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10495">LUCENE-10495</a>: Fix return statement of siblingsLoaded() in TaxonomyFacets.
+<br /><span class="attrib">(Yuting Gan)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10533">LUCENE-10533</a>: SpellChecker.formGrams is missing bounds check
+<br /><span class="attrib">(Kevin Risden)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10529">LUCENE-10529</a>: Properly handle when TestTaxonomyFacetAssociations test case randomly indexes
+no documents instead of throwing an NPE.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10470">LUCENE-10470</a>: Check if polygon has been successfully tessellated before we fail (we are failing some valid
+tessellations) and allow filtering edges that fold on top of the previous one.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10530">LUCENE-10530</a>: Avoid floating point precision test case bug in TestTaxonomyFacetAssociations.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10552">LUCENE-10552</a>: KnnVectorQuery has incorrect equals/ hashCode.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10558">LUCENE-10558</a>: Restore behaviour of deprecated Kuromoji and Nori dictionary constructors for
+custom dictionary support. Please also use new URL-based constructors for classpath/module
+system ressources.
+<br /><span class="attrib">(Uwe Schindler, Tomoko Uchida, Mike Sokolov)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10564">LUCENE-10564</a>: Make sure SparseFixedBitSet#or updates ramBytesUsed.
+<br /><span class="attrib">(Julie Tibshirani)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.2.0.build" href="javascript:toggleList('v9.2.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v9.2.0.build.list">
+      <li><a href="https://github.com/apache/lucene/pull/768">GITHUB#768</a>: Upgrade forbiddenapis to version 3.3.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/890">GITHUB#890</a>: Detect CI builds on Github or Jenkins and enable errorprone.
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10532">LUCENE-10532</a>: Remove LuceneTestCase.Slow annotation. All tests can be fast.
+<br /><span class="attrib">(Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.2.0.other" href="javascript:toggleList('v9.2.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v9.2.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10526">LUCENE-10526</a>: Test-framework: Add FilterFileSystemProvider.wrapPath(Path) method for mock filesystems
+to override if they need to extend the Path implementation.
+<br /><span class="attrib">(Gautam Worah, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10525">LUCENE-10525</a>: Test-framework: Add detection of illegal windows filenames to WindowsFS.
+<br /><span class="attrib">(Gautam Worah)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10541">LUCENE-10541</a>: Test-framework: limit the default length of MockTokenizer tokens to 255.
+<br /><span class="attrib">(Robert Muir, Uwe Schindler, Tomoko Uchida, Dawid Weiss)</span></li>
+      <li><a href="https://github.com/apache/lucene/pull/854">GITHUB#854</a>: Allow to link to GitHub pull request from CHANGES.
+<br /><span class="attrib">(Tomoko Uchida, Jan Høydahl)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v9.1.0" href="javascript:toggleList('v9.1.0')">Release 9.1.0  [2022-03-22]</a></h3>
+<ul id="v9.1.0.list">
+  <li><a id="v9.1.0.api_changes" href="javascript:toggleList('v9.1.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(16)
+    <ol id="v9.1.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10244">LUCENE-10244</a>: MultiCollector::getCollectors is now public, allowing users to access the wrapped
+collectors.
+<br /><span class="attrib">(Andriy Redko)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10197">LUCENE-10197</a>: UnifiedHighlighter now has a Builder to construct it.  The UH's setters are now
+deprecated.
+<br /><span class="attrib">(Animesh Pandey, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10301">LUCENE-10301</a>: the test framework is now a module. All the classes have been moved from
+org.apache.lucene.* to org.apache.lucene.tests.* to avoid package name conflicts with the
+core module.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10183">LUCENE-10183</a>: KnnVectorsWriter#writeField to take KnnVectorsReader instead of VectorValues.
+<br /><span class="attrib">(Zach Chen, Michael Sokolov, Julie Tibshirani, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10335">LUCENE-10335</a>: Deprecate helper methods for resource loading in IOUtils and StopwordAnalyzerBase
+that are not compatible with module system (Class#getResourceAsStream() and Class#getResource()
+are caller sensitive in Java 11). Instead add utility method IOUtils#requireResourceNonNull(T)
+to test existence of resource based on null return value.
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10349">LUCENE-10349</a>: WordListLoader methods now return unmodifiable CharArraySets.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10377">LUCENE-10377</a>: SortField.getComparator() has changed signature. The second parameter is now
+a boolean indicating whether or not skipping should be enabled on the comparator.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10381">LUCENE-10381</a>: Require users to provide FacetsConfig for SSDV faceting.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10368">LUCENE-10368</a>: IntTaxonomyFacets has been deprecated and is no longer a supported extension point
+for user-created faceting implementations.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10400">LUCENE-10400</a>: Add constructors that take external resource Paths to dictionary classes in Kuromoji and Nori:
+ConnectionCosts, TokenInfoDictionary, and UnknownDictionary. Old constructors that take resource scheme and
+resource path in those classes are deprecated; These are replaced with the new constructors and planned to be
+removed in a future release.
+<br /><span class="attrib">(Tomoko Uchida, Uwe Schindler, Mike Sokolov)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10050">LUCENE-10050</a>: Deprecate DrillSideways#search(Query, Collector) in favor of
+DrillSideways#search(Query, CollectorManager). This reflects the change (<a href="http://issues.apache.org/jira/browse/LUCENE-10002">LUCENE-10002</a>) being made in
+IndexSearcher#search that trends towards using CollectorManagers over Collectors.
+<br /><span class="attrib">(Gautam Worah)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10420">LUCENE-10420</a>: Move functional interfaces in IOUtils to top-level interfaces.
+<br /><span class="attrib">(David Smiley, Uwe Schindler, Dawid Weiss, Tomoko Uchida)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10398">LUCENE-10398</a>: Add static method for getting Terms from LeafReader.
+<br /><span class="attrib">(Spike Liu)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10440">LUCENE-10440</a>: TaxonomyFacets and FloatTaxonomyFacets have been deprecated and are no longer
+supported extension points for user-created faceting implementations.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10431">LUCENE-10431</a>: MultiTermQuery.setRewriteMethod() has been deprecated, and constructor
+parameters for the various implementations added.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10171">LUCENE-10171</a>: OpenNLPOpsFactory.getLemmatizerDictionary(String, ResourceLoader) now returns a
+DictionaryLemmatizer object instead of a raw String serialization of the dictionary.
+<br /><span class="attrib">(Spyros Kapnissis via Michael Gibney, Alessandro Benedetti)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.1.0.new_features" href="javascript:toggleList('v9.1.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(19)
+    <ol id="v9.1.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10255">LUCENE-10255</a>: Lucene JARs are now proper modules, with module descriptors and dependency information.
+<br /><span class="attrib">(Chris Hegarty, Uwe Schindler, Tomoko Uchida, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10342">LUCENE-10342</a>: Lucene Core now depends on java.logging (JUL) module and reports
+if MMapDirectory cannot unmap mapped ByteBuffers or RamUsageEstimator's object size
+calculations may be off. This was added especially for users running Lucene with the
+Java Module System where some optional features are not available by default or supported.
+For all apps using Lucene it is strongly recommended, to explicitely require non-standard
+JDK modules: jdk.unsupported (unmapping) and jdk.management (OOP size for RAM usage calculatons).
+It is also recommended to install JUL logging adapters to feed the log events into your app's
+logging system.
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss, Tomoko Uchida, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10330">LUCENE-10330</a>: Make MMapDirectory tests fail by default, if unmapping does not work.
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10223">LUCENE-10223</a>: Add interval function support to StandardQueryParser. Add min-should-match operator
+support to StandardQueryParser. Update and clean up package documentation in flexible query parser
+module.
+<br /><span class="attrib">(Dawid Weiss, Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10220">LUCENE-10220</a>: Add an utility method to get IntervalSource from analyzed text (or token stream).
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss, Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10085">LUCENE-10085</a>: Added Weight#count on DocValuesFieldExistsQuery to speed up the query if terms or
+points are indexed.
+<br /><span class="attrib">(Quentin Pradet, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10263">LUCENE-10263</a>: Added Weight#count to NormsFieldExistsQuery to speed up the query if all
+documents have the field..
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10248">LUCENE-10248</a>: Add SpanishPluralStemFilter, for precise stemming of Spanish plurals.
+For more information, see <a href="https://s.apache.org/spanishplural">https://s.apache.org/spanishplural</a>
+<br /><span class="attrib">(Xavier Sanchez Loro)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10243">LUCENE-10243</a>: StandardTokenizer, UAX29URLEmailTokenizer, and HTMLStripCharFilter have
+been upgraded to Unicode 12.1
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10335">LUCENE-10335</a>: Add ModuleResourceLoader as complement to ClasspathResourceLoader.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10245">LUCENE-10245</a>: MultiDoubleValues(Source) and MultiLongValues(Source) were added as multi-valued
+versions of DoubleValues(Source) and LongValues(Source) to the facets module. LongValueFacetCounts,
+LongRangeFacetCounts and DoubleRangeFacetCounts were augmented to support these new multi-valued
+abstractions. DoubleRange and LongRange also support creating queries from these multi-valued
+sources.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10250">LUCENE-10250</a>: Add support for arbitrary length hierarchical SSDV facets.
+<br /><span class="attrib">(Marc D'mello)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10395">LUCENE-10395</a>: Add support for TotalHitCountCollectorManager, a collector manager
+based on TotalHitCountCollector that allows users to parallelize counting the
+number of hits.
+<br /><span class="attrib">(Luca Cavanna, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10403">LUCENE-10403</a>: Add ArrayUtil#grow(T[]).
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10414">LUCENE-10414</a>: Add fn:fuzzyTerm interval function to flexible query parser
+<br /><span class="attrib">(Dawid Weiss,
+Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10378">LUCENE-10378</a>: Implement Weight#count for PointRangeQuery to provide a faster way to calculate
+the number of matching range docs when each doc has at-most one point and the points are 1-dimensional.
+<br /><span class="attrib">(Gautam Worah, Ignacio Vera, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10415">LUCENE-10415</a>: FunctionScoreQuery and IndexOrDocValuesQuery delegate Weight#count.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10382">LUCENE-10382</a>: Add support for filtering in KnnVectorQuery. This allows for finding the
+nearest k documents that also match a query.
+<br /><span class="attrib">(Julie Tibshirani, Joel Bernstein)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10237">LUCENE-10237</a>: Add MergeOnFlushMergePolicy to sandbox.
+<br /><span class="attrib">(Michael Froh, Anand Kotriwal)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.1.0.improvements" href="javascript:toggleList('v9.1.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="v9.1.0.improvements.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10313">LUCENE-10313</a>: use java util logging in Luke. Add dynamic log filtering. Drop
+the persistent log previously written to ~/.luke.d/luke.log. Configure Java's default
+logging handlers to persist Luke logs according to your needs.
+<br /><span class="attrib">(Tomoko Uchida, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10238">LUCENE-10238</a>: Upgrade icu4j dependency to 70.1.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9820">LUCENE-9820</a>: Extract BKD tree interface and move intersecting logic to the
+PointValues abstract class.
+<br /><span class="attrib">(Ignacio Vera, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10262">LUCENE-10262</a>: Lift up restrictions for navigating PointValues#PointTree
+added in <a href="http://issues.apache.org/jira/browse/LUCENE-9820">LUCENE-9820</a>
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9538">LUCENE-9538</a>: Detect polygon self-intersections in the Tessellator.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10275">LUCENE-10275</a>: Speed up MultiRangeQuery by using an interval tree.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10229">LUCENE-10229</a>: Unify behaviour of match offsets for interval queries on fields
+with or without offsets enabled.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10054">LUCENE-10054</a> Make HnswGraph hierarchical
+<br /><span class="attrib">(Mayya Sharipova, Julie Tibshirani, Mike Sokolov,
+Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10371">LUCENE-10371</a>: Make IndexRearranger able to arrange segment in a determined order.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.1.0.optimizations" href="javascript:toggleList('v9.1.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(20)
+    <ol id="v9.1.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10329">LUCENE-10329</a>: Use computed block mask for DirectMonotonicReader#get.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10280">LUCENE-10280</a>: Optimize BKD leaves' doc IDs codec when they are continuous.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10233">LUCENE-10233</a>: Store BKD leaves' doc IDs as bitset in some cases (typically for low cardinality fields
+ or sorted indices) to speed up addAll.
+<br /><span class="attrib">(Guo Feng, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10225">LUCENE-10225</a>: Improve IntroSelector with 3-ways partitioning.
+<br /><span class="attrib">(Bruno Roustant, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10321">LUCENE-10321</a>: Tweak MultiRangeQuery interval tree creation to skip "pulling up" mins.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10252">LUCENE-10252</a>: ValueSource.asDoubleValues and asLongValues should not compute the score unless
+asked to -- typically never.  This fixes a performance regression since 7.3 <a href="http://issues.apache.org/jira/browse/LUCENE-8099">LUCENE-8099</a> when some
+older boosting queries were replaced with this.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10346">LUCENE-10346</a>: Optimize facet counting for single-valued TaxonomyFacetCounts.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10356">LUCENE-10356</a>: Further optimize facet counting for single-valued TaxonomyFacetCounts.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10379">LUCENE-10379</a>: Count directly into the dense values array in FastTaxonomyFacetCounts#countAll.
+<br /><span class="attrib">(Guo Feng, Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10375">LUCENE-10375</a>: Speed up HNSW vectors merge by first writing combined vector
+data to a file.
+<br /><span class="attrib">(Julie Tibshirani, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10388">LUCENE-10388</a>: Remove MultiLevelSkipListReader#SkipBuffer to make JVM less confused.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10367">LUCENE-10367</a>: Optimize CoveringQuery for the case when the minimum number of
+matching clauses is a constant.
+<br /><span class="attrib">(LuYunCheng via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10412">LUCENE-10412</a>: More `Query#rewrite` optimizations for MatchNoDocsQuery.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10408">LUCENE-10408</a> Better encoding of doc Ids in vectors.
+<br /><span class="attrib">(Mayya Sharipova, Julie Tibshirani, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10424">LUCENE-10424</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-10439">LUCENE-10439</a>: Optimize the "everything matches" case for count query in PointRangeQuery.
+<br /><span class="attrib">(Ignacio Vera, Lu Xugang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10084">LUCENE-10084</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-10435">LUCENE-10435</a>: Rewrite DocValuesFieldExistsQuery to MatchAllDocsQuery whenever
+terms or points have a docCount that is equal to maxDoc.
+<br /><span class="attrib">(Vigya Sharma, Lu Xugang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10442">LUCENE-10442</a>: When indexQuery or/and dvQuery be a MatchAllDocsQuery
+then IndexOrDocValuesQuery should be rewrite to MatchAllDocsQuery.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10450">LUCENE-10450</a>: IndexSortSortedNumericDocValuesRangeQuery could be rewrite to MatchAllDocsQuery.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10453">LUCENE-10453</a>: Indexing and search speedup with KNN vectors when using
+euclidean distance.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10455">LUCENE-10455</a>: IndexSortSortedNumericDocValuesRangeQuery now implements the scorerSupplier API.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.1.0.changes_in_runtime_behavior" href="javascript:toggleList('v9.1.0.changes_in_runtime_behavior')">Changes in runtime behavior</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v9.1.0.changes_in_runtime_behavior.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10291">LUCENE-10291</a>: Lucene now only writes files for terms and postings if at least
+one field is indexed with postings.
+<br /><span class="attrib">(Yannick Welsch)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10311">LUCENE-10311</a>: FixedBitSet#approximateCardinality now trades accuracy for
+speed instead of delegating to FixedBitSet#cardinality.
+<br /><span class="attrib">(Robert Muir, Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.1.0.bug_fixes" href="javascript:toggleList('v9.1.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(16)
+    <ol id="v9.1.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10316">LUCENE-10316</a>: fix TestLRUQueryCache.testCachingAccountableQuery failure.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10279">LUCENE-10279</a>: Fix equals in MultiRangeQuery.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10349">LUCENE-10349</a>: Fix all analyzers to behave according to their documentation:
+getDefaultStopSet() methods now return unmodifiable CharArraySets.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10352">LUCENE-10352</a>: Add missing service provider entries: KoreanNumberFilterFactory,
+DaitchMokotoffSoundexFilterFactory
+<br /><span class="attrib">(Uwe Schindler, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10352">LUCENE-10352</a>: Fixed ctor argument checks: JapaneseKatakanaStemFilter,
+DoubleMetaphoneFilter
+<br /><span class="attrib">(Uwe Schindler, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10236">LUCENE-10236</a>: Stop duplicating norms when scoring in CombinedFieldQuery.
+<br /><span class="attrib">(Zach Chen, Jim Ferenczi, Julie Tibshirani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10353">LUCENE-10353</a>: Add random null injection to TestRandomChains.
+<br /><span class="attrib">(Robert Muir,
+Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10377">LUCENE-10377</a>: CheckIndex could incorrectly throw an error when checking index sorts
+defined on older indexes.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-9952">LUCENE-9952</a>: Address inaccurate dim counts for SSDV faceting in cases where a dim is configured
+as multi-valued.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10401">LUCENE-10401</a>: Fix lookups on empty doc-value terms dictionaries to no longer
+throw an ArrayIndexOutOfBoundsException.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10402">LUCENE-10402</a>: Prefix intervals should declare their automaton as binary, otherwise prefixes
+containing multibyte characters will not correctly match.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10407">LUCENE-10407</a>: Containing intervals could sometimes yield incorrect matches when wrapped
+in a disjunction.
+<br /><span class="attrib">(Alan Woodward, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10405">LUCENE-10405</a>: When using the MemoryIndex, binary and Sorted doc values are stored
+ as BytesRef instead of BytesRefHash so they don't have a limit on size.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10428">LUCENE-10428</a>: Queries with a misbehaving score function may no longer cause
+infinite loops in their parent BooleanQuery.
+<br /><span class="attrib">(Ankit Jain, Daniel Doubrovkine, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10431">LUCENE-10431</a>: MultiTermQuery no longer includes its rewrite method in its hashcode
+calculation, as this could cause problems with wrapper queries like BooleanQuery which
+expect their child queries hashcodes to be stable.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10469">LUCENE-10469</a>: Fix ScoreMode propagation by ConstantScoreQuery.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.1.0.other" href="javascript:toggleList('v9.1.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(7)
+    <ol id="v9.1.0.other.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10273">LUCENE-10273</a>: Deprecate SpanishMinimalStemFilter in favor of SpanishPluralStemFilter.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10284">LUCENE-10284</a>: Upgrade morfologik-stemming to 2.1.8.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10310">LUCENE-10310</a>: TestXYDocValuesQueries#doRandomDistanceTest does not produce random circles with radius
+with '0' value any longer.
+<p>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10352">LUCENE-10352</a>: Removed duplicate instances of StringMockResourceLoader and migrated class to
+test-framework.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10352">LUCENE-10352</a>: Convert TestAllAnalyzersHaveFactories and TestRandomChains to a global integration test
+and discover classes to check from module system. The test now checks all analyzer modules,
+so it may discover new bugs outside of analysis:common module.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10413">LUCENE-10413</a>: Make Ukrainian default stop words list available as a public getter.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10437">LUCENE-10437</a>: Polygon tessellator throws a more informative error message when the provided polygon
+does not contain enough no-collinear points.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v9.0.0" href="javascript:toggleList('v9.0.0')">Release 9.0.0  [2021-12-07]</a></h3>
+<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

[... 18459 lines stripped ...]