You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ch...@apache.org on 2025/06/17 09:26:07 UTC

svn commit: r77595 [3/18] - in /dev/lucene/lucene-10.2.2-RC1-rev-279eb7aaafe985e5d0552b7f2a10b63185a3f893: ./ lucene/ lucene/changes/ lucene/maven/ lucene/maven/org/ lucene/maven/org/apache/ lucene/maven/org/apache/lucene/ lucene/maven/org/apache/lucen...

Added: dev/lucene/lucene-10.2.2-RC1-rev-279eb7aaafe985e5d0552b7f2a10b63185a3f893/lucene/changes/Changes.html
==============================================================================
--- dev/lucene/lucene-10.2.2-RC1-rev-279eb7aaafe985e5d0552b7f2a10b63185a3f893/lucene/changes/Changes.html (added)
+++ dev/lucene/lucene-10.2.2-RC1-rev-279eb7aaafe985e5d0552b7f2a10b63185a3f893/lucene/changes/Changes.html Tue Jun 17 09:25:53 2025
@@ -0,0 +1,21597 @@
+<!--
+**********************************************************
+** 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("^(?:v10\\\\.2\\\\.2|v10\\\\.2\\\\.1)");
+    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 != 'v10.2.2.list' 
+            && list.id != 'v10.2.1.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 == 'v10.2.2' || anchor.id == 'v10.2.1') {
+            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="v10.2.2" href="javascript:toggleList('v10.2.2')">Release 10.2.2 </a></h2>
+<ul id="v10.2.2.list">
+  <li><a id="v10.2.2.bug_fixes" href="javascript:toggleList('v10.2.2.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v10.2.2.bug_fixes.list">
+      <li><a href="https://github.com/apache/lucene/issues/14527">GITHUB#14527</a>, <a href="https://github.com/apache/lucene/issues/14765">GITHUB#14765</a>: Reduce NeighborArray heap memory.
+<br /><span class="attrib">(weizijun, Ben Trent)</span></li>
+      <li>GITHUB##14732: Fix IndexSortSortedNumericDocValuesRangeQuery for int sort
+<br /><span class="attrib">(Mayya Sharipova)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14654">GITHUB#14654</a>: ValueSource.fromDoubleValuesSource(dvs).getSortField() would throw errors when
+used if the DoubleValuesSource needed scores.
+<br /><span class="attrib">(David Smiley)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="v10.2.1" href="javascript:toggleList('v10.2.1')">Release 10.2.1  [2025-05-01]</a></h2>
+<ul id="v10.2.1.list">
+  <li><a id="v10.2.1.bug_fixes" href="javascript:toggleList('v10.2.1.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v10.2.1.bug_fixes.list">
+      <li><a href="https://github.com/apache/lucene/issues/14522">GITHUB#14522</a>: Fix DISIDocIdStream::count so that it does not try to count beyond max.
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14523">GITHUB#14523</a>, <a href="https://github.com/apache/lucene/issues/14530">GITHUB#14530</a>: Correct TermOrdValComparator competitive iterator so that it forces sparse
+field iteration to be at least scoring window baseline when doing intoBitSet.
+<br /><span class="attrib">(Ben Trent, Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14445">GITHUB#14445</a>: Provide better impacts for fields indexed with IndexOptions.DOCS <a href="https://github.com/apache/lucene/issues/14511">GITHUB#14511</a>
+<br /><span class="attrib">(Aniketh Jain)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14543">GITHUB#14543</a>: Fixed lead cost computations for bulk scorers of conjunctive
+queries that mix MUST and FILTER clauses, and disjunctive queries that
+configure a minimum number of matching SHOULD clauses.
+<br /><span class="attrib">(Peter Alfonsi, Adrien Grand)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="older" href="javascript:toggleList('older')">Older Releases</a></h2>
+<div id="older.list">
+<h3><a id="v10.2.0" href="javascript:toggleList('v10.2.0')">Release 10.2.0  [2025-04-10]</a></h3>
+<ul id="v10.2.0.list">
+  <li><a id="v10.2.0.api_changes" href="javascript:toggleList('v10.2.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="v10.2.0.api_changes.list">
+      <li><a href="https://github.com/apache/lucene/issues/14069">GITHUB#14069</a>: Added DocIdSetIterator#intoBitSet API to let implementations
+optimize loading doc IDs into a bit set.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14134">GITHUB#14134</a>: Added Bits#applyMask API to help apply live docs as a mask on a
+bit set of matches.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14209">GITHUB#14209</a>: Deprecate Operations.union(Automaton,Automaton) and
+concatenate(Automaton,Automaton) in favor of the methods taking List.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14236">GITHUB#14236</a>: CombinedFieldQuery moved from lucene-sandbox to lucene-core.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14282">GITHUB#14282</a>: Remove redundant field argument from the DocIdSetBuilder constructor that takes a
+PointValues instance.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14289">GITHUB#14289</a>: The unused public static DocIdSet#all method has been deprecated.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14292">GITHUB#14292</a>: The redundant DocIdSet#bits method has been deprecated.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14237">GITHUB#14237</a>: Add utils for sandbox facets module for the most common tasks.
+<br /><span class="attrib">(Egor Potemkin)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14312">GITHUB#14312</a>: Added DocIdSetIterator#docIDRunEnd to let iterators tell when
+they have runs of matches. This is then leveraged by conjunctions to
+automatically ignore clauses that have long runs of matches over these runs,
+resulting in better efficiency.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.2.0.new_features" href="javascript:toggleList('v10.2.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="v10.2.0.new_features.list">
+      <li><a href="https://github.com/apache/lucene/issues/14084">GITHUB#14084</a>, <a href="https://github.com/apache/lucene/issues/13635">GITHUB#13635</a>, <a href="https://github.com/apache/lucene/issues/13634">GITHUB#13634</a>, <a href="https://github.com/apache/lucene/issues/14170">GITHUB#14170</a>: Adds new `SeededKnnVectorQuery` query.
+These queries allow for the vector search entry points to be initialized via a `seed` query. This follows
+the research provided via <a href="https://arxiv.org/abs/2307.16779.">https://arxiv.org/abs/2307.16779.</a>
+<br /><span class="attrib">(Sean MacAvaney, Ben Trent)</span>.
+<p>
+</li>
+      <li><a href="https://github.com/apache/lucene/issues/14078">GITHUB#14078</a>, <a href="https://github.com/apache/lucene/issues/14374">GITHUB#14374</a>: Adds two new binary quantized vector codecs `Lucene102HnswBinaryQuantizedVectorsFormat`
+and `Lucene102BinaryQuantizedVectorsFormat`. These new formats allow a ~32x from raw float32 vectors while
+achieving high recall (with oversampling and reranking vectors) for typical modern knn vector search tasks.
+<br /><span class="attrib">(Mayya Sharipova, Ben Trent, Tom Veasey, John Wagster, Chris Hegarty)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13974">GITHUB#13974</a>,<a href="https://github.com/apache/lucene/issues/14276">GITHUB#14276</a>: Introducing DocValuesMultiRangeQuery.SortedSetStabbingBuilder into sandbox.
+<br /><span class="attrib">(Mikhail Khludnev)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14204">GITHUB#14204</a>: Added HistogramCollectorManager to efficiently compute a
+histogram of the distribution of the values of a field, for documents
+matching a given query.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14278">GITHUB#14278</a>: Added `onlyLongestMatchNoSubwords` option to DictionaryCompoundWordTokenFilter.
+This replaces the `onlyLongestMatch` option, and actually only extracts longest matches. For example,
+if the word "schwein" is extracted, the sub-word "wein" is not extracted anymore.
+Deprecate `onlyLongestMatch`.
+<br /><span class="attrib">(Renato Haeberli)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14300">GITHUB#14300</a>: Add support JDK 24 to the Panama Vectorization Provider.
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13470">GITHUB#13470</a>: Added `TopDocs#rrf` to combine multiple TopDocs instances using
+reciprocal rank fusion.
+<br /><span class="attrib">(Haren Lin, Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14412">GITHUB#14412</a>: Allow skip cache factor to be updated dynamically.
+<br /><span class="attrib">(Sagar Upadhyaya)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14094">GITHUB#14094</a>: New KNN query that early terminates when HNSW nearest neighbor queue saturates.
+<br /><span class="attrib">(Tommaso Teofili)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.2.0.improvements" href="javascript:toggleList('v10.2.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(12)
+    <ol id="v10.2.0.improvements.list">
+      <li><a href="https://github.com/apache/lucene/issues/14079">GITHUB#14079</a>: Hunspell Dictionary now supports an option to tolerate REP rule count mismatches.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13984">GITHUB#13984</a>: Add HNSW graph checks and stats to CheckIndex
+<br /><span class="attrib">(Ben Chaplin)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14113">GITHUB#14113</a>: Remove unnecessary ByteArrayDataInput allocations from `Lucene90DocValuesProducer$TermsDict.decompressBlock`.
+<br /><span class="attrib">(Ankit Jain)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14138">GITHUB#14138</a>: Implement IntersectVisitor#visit(IntsRef) in  many of the current implementations and add
+BulkAdder#add(IntsRef) method. They should provide better performance due to less virtual method calls and
+more efficient bulk processing.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14107">GITHUB#14107</a>, <a href="https://github.com/apache/lucene/issues/14124">GITHUB#14124</a>, <a href="https://github.com/apache/lucene/issues/14103">GITHUB#14103</a>: Optimize DirectIOIndexInput; add
+individual and bulk data retrieval overloads; avoid double buffering with
+slices.
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14166">GITHUB#14166</a>: Log(ByteSize|Doc)MergePolicy now allow merging more than
+mergeFactor segments together when the merge is below the min merge size.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14192">GITHUB#14192</a>: Added support for RegExp to handle case insensitive matching
+across the full set of Unicode characters.
+<br /><span class="attrib">(John Wagster)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14381">GITHUB#14381</a>: Add RegExp.CASE_INSENSITIVE_RANGE flag to support case-insensitive
+matches of character class ranges such as /[a-z]/
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14239">GITHUB#14239</a>: Hunspell's option to tolerate affix rule count mismatches was
+improved to tolerate more instances of this problem.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14238">GITHUB#14238</a>: Improve test coverage of Dynamic Range Faceting.
+<br /><span class="attrib">(John Houser)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14213">GITHUB#14213</a>: Allowing indexing stored-only StoredField directly from DataInput.
+<br /><span class="attrib">(Tim Brooks)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14364">GITHUB#14364</a>: Completion FSTs to be loaded off-heap at all times.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.2.0.optimizations" href="javascript:toggleList('v10.2.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(21)
+    <ol id="v10.2.0.optimizations.list">
+      <li><a href="https://github.com/apache/lucene/issues/14052">GITHUB#14052</a>: Speed up DisjunctionDISIApproximation#advance.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14080">GITHUB#14080</a>: Use the `DocIdSetIterator#loadIntoBitSet` API to speed up dense
+conjunctions.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14293">GITHUB#14293</a>: Use the `DocIdSetIterator#loadIntoBitSet` API to speed up
+intersection of dense queries with live docs and/or collectors' competitive
+iterators.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14133">GITHUB#14133</a>: Dense blocks of postings are now encoded as bit sets.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14169">GITHUB#14169</a>: Optimize ContextQuery with big number of contexts.
+<br /><span class="attrib">(Mayya Sharipova)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14181">GITHUB#14181</a>: Add updateable random scorer interface for knn vector index building. This allows
+for fewer objects to be created during indexing and simplifies internally used iterfaces.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14160">GITHUB#14160</a>: Adds new filtered HNSW search heuristic based on ACORN-1 algorithm. This improves runtime of filtered HNSW
+searches as much as 5x. By default this new heuristic isn't used, but is available via the new experimental
+KnnSearchStrategy interface in knn queries
+<br /><span class="attrib">(Ben Chaplin, Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14193">GITHUB#14193</a>: Add Automata.makeCharSet() and makeCharClass() that return minimal DFA
+for lists of characters and ranges. Use them in RegExp parser.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14176">GITHUB#14176</a>: Reduce virtual call when visiting bpv24-encoded doc ids in BKD leaves.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14269">GITHUB#14269</a>: Implement #intoBitset for DocIdSetIterator#all and DocIdSetIterator#range.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14272">GITHUB#14272</a>: Use DocIdSetIterator#range for continuous-id BKD leaves.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14338">GITHUB#14338</a>: Deduplicate BKDConfig records in BKDReader.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14301">GITHUB#14301</a>: Avoid unnecessary evaluations and skipping documents.
+<br /><span class="attrib">(hanbj)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14203">GITHUB#14203</a>: Decode doc ids in BKD leaves with auto-vectorized loops when using DEFAULT_MAX_POINTS_IN_LEAF_NODE.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14176">GITHUB#14176</a>: Avoid the per-doc virtual call when building competitive iterator for dynamic pruning.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li># <a href="https://github.com/apache/lucene/issues/14361">GITHUB#14361</a>: Introduce new encoding of BPV 21 for DocIdsWriter used in BKD Tree.
+<br /><span class="attrib">(Aniketh Jain, Guo Feng)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14331">GITHUB#14331</a>: Speedup merging of HNSW graphs.
+<br /><span class="attrib">(Mayya Sharipova, Tom Veasey)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14383">GITHUB#14383</a>: Use FixedLengthBytesRefArray in OneDimensionBKDWriter to hold split values.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14373">GITHUB#14373</a>: Optimized `ParallelLeafReader` to improve term vector fetching efficiency.
+<br /><span class="attrib">(Divyansh Agrawal)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14393">GITHUB#14393</a>: Pack file pointers using the packed monotonic builder when building BKD trees.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14304">GITHUB#14304</a>: Add SIMD optimizations for scalar quantized queries and indexing.
+<br /><span class="attrib">(Simon Cooper)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.2.0.bug_fixes" href="javascript:toggleList('v10.2.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(6)
+    <ol id="v10.2.0.bug_fixes.list">
+      <li><a href="https://github.com/apache/lucene/issues/14109">GITHUB#14109</a>: prefetch may select the wrong memory segment for
+multi-segment slices.
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14123">GITHUB#14123</a>: SortingCodecReader NPE when segment has no (points, vectors, etc...)
+<br /><span class="attrib">(Mike Sokolov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14126">GITHUB#14126</a>: Avoid overflow in index input slices invariant checks
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14215">GITHUB#14215</a>, <a href="https://github.com/apache/lucene/issues/14249">GITHUB#14249</a>, <a href="https://github.com/apache/lucene/issues/14366">GITHUB#14366</a>: Fix degenerate case in HNSW where all vectors have the same score.
+<br /><span class="attrib">(Ben Trent, Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14320">GITHUB#14320</a>: Fix DirectIOIndexInput seek to not read when position is within buffer
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14436">GITHUB#14436</a>: Disable connectedComponents logic in HNSW graph building. Relates to <a href="https://github.com/apache/lucene/issues/14214">GITHUB#14214</a>, <a href="https://github.com/apache/lucene/issues/12627">GITHUB#12627</a>, <a href="https://github.com/apache/lucene/issues/13566">GITHUB#13566</a>.
+<br /><span class="attrib">(Ben Trent)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.2.0.changes_in_runtime_behavior" href="javascript:toggleList('v10.2.0.changes_in_runtime_behavior')">Changes in Runtime Behavior</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v10.2.0.changes_in_runtime_behavior.list">
+      <li><a href="https://github.com/apache/lucene/issues/14189">GITHUB#14189</a>: Bump floor segment size to 16MB in TieredMergePolicy and
+LogByteSizeMergePolicy.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.2.0.other" href="javascript:toggleList('v10.2.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(8)
+    <ol id="v10.2.0.other.list">
+      <li><a href="https://github.com/apache/lucene/issues/14081">GITHUB#14081</a>: Fix urls describing why NIOFS is not recommended for Windows
+<br /><span class="attrib">(Marcel Yeonghyeon Ko)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14116">GITHUB#14116</a> Use CDL to block threads to avoid flaky tests.
+<br /><span class="attrib">(Ao Li)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14130">GITHUB#14130</a>: Upgrade OpenNLP from 2.3.2 to 2.5.3, which transitively upgrades Slf4j
+from 1.7.36 to 2.0.16.
+<br /><span class="attrib">(Michael Froh)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14223">GITHUB#14223</a> : Fixed a flaky test TestKnnFloatVectorQuery.testFindFewer
+<br /><span class="attrib">(Navneet Verma)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14372">GITHUB#14372</a>: Reduce visibility of NRTSuggester#load from public to package private
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14386">GITHUB#14386</a>: Bump analysis/icu's icu4j dependency to 77.1
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14388">GITHUB#14388</a>: Bump expression's antlr dependency to 4.13.2
+<br /><span class="attrib">(Dawid Weiss, Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14091">GITHUB#14091</a>: Cover all DataType.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v10.1.0" href="javascript:toggleList('v10.1.0')">Release 10.1.0  [2024-12-20]</a></h3>
+<ul id="v10.1.0.list">
+  <li><a id="v10.1.0.api_changes" href="javascript:toggleList('v10.1.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v10.1.0.api_changes.list">
+      <li><a href="https://github.com/apache/lucene/issues/13859">GITHUB#13859</a>: Allow open-ended ranges in Intervals range queries.
+<br /><span class="attrib">(Mayya Sharipova)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13950">GITHUB#13950</a>: Make BooleanQuery#getClauses public and add #add(Collection&lt;BooleanClause&gt;) to BQ builder.
+<br /><span class="attrib">(Shubham Chaudhary)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13957">GITHUB#13957</a>: Removed LeafSimScorer class, to save its overhead. Scorers now
+compute scores directly from a SimScorer, postings and norms.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13998">GITHUB#13998</a>: Add IndexInput::isLoaded to determine if the contents of an
+input is resident in physical memory.
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.1.0.new_features" href="javascript:toggleList('v10.1.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v10.1.0.new_features.list">
+      <li><a href="https://github.com/apache/lucene/issues/14034">GITHUB#14034</a>: Add support for storing term vectors in FeatureField.
+<br /><span class="attrib">(Jim Ferenczi)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.1.0.improvements" href="javascript:toggleList('v10.1.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v10.1.0.improvements.list">
+      <li><a href="https://github.com/apache/lucene/issues/13986">GITHUB#13986</a>: Allow easier configuration of the Panama Vectorization provider with
+newer Java versions. Set the `org.apache.lucene.vectorization.upperJavaFeatureVersion`
+system property to increase the set of Java versions that Panama Vectorization will
+provide optimized implementations for.
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/266">GITHUB#266</a>: TieredMergePolicy now allows merging up to maxMergeAtOnce
+segments for merges below the floor segment size, even if maxMergeAtOnce is
+bigger than segsPerTier.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14033">GITHUB#14033</a>: Combine all postings enum impls of the default codec into a
+single class.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.1.0.optimizations" href="javascript:toggleList('v10.1.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(25)
+    <ol id="v10.1.0.optimizations.list">
+      <li><a href="https://github.com/apache/lucene/issues/13828">GITHUB#13828</a>: Reduce long[] array allocation for bitset in readBitSetIterator.
+<br /><span class="attrib">(Zhang Chao)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13800">GITHUB#13800</a>: MaxScoreBulkScorer now recomputes scorer partitions when the
+minimum competitive allows for a more favorable partitioning.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13930">GITHUB#13930</a>: Use growNoCopy when copying bytes in BytesRefBuilder.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13931">GITHUB#13931</a>: Refactored `BooleanScorer` to evaluate matches of sub clauses
+using the `Scorer` abstraction rather than the `BulkScorer` abstraction. This
+speeds up exhaustive evaluation of disjunctions of term queries.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13941">GITHUB#13941</a>: Optimized computation of top-hits on disjunctive queries with
+many clauses.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13954">GITHUB#13954</a>: Disabled exchanging scores across slices for exhaustive
+top-hits evaluation.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13899">GITHUB#13899</a>: Check ahead if we can get the count.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13943">GITHUB#13943</a>: Removed shared `HitsThresholdChecker`, which reduces overhead
+but may delay a bit when dynamic pruning kicks in.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13961">GITHUB#13961</a>: Replace Map&lt;String,Object&gt; with IntObjectHashMap for DV producer.
+<br /><span class="attrib">(Pan Guixin)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13963">GITHUB#13963</a>: Speed up nextDoc() implementations in Lucene912PostingsReader.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13958">GITHUB#13958</a>: Speed up advancing within a block.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13763">GITHUB#13763</a>: Replace Map&lt;String,Object&gt; with IntObjectHashMap for KnnVectorsReader
+<br /><span class="attrib">(Pan Guixin)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13968">GITHUB#13968</a>: Switch postings from storing doc IDs in a long[] to an int[].
+Lucene 8.4 had moved to a long[] to help speed up block decoding by using
+longs that would pack two integers. We are now moving back to integers to be
+able to take advantage of 2x more lanes with the vector API.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13994">GITHUB#13994</a>: Speed up top-k retrieval of filtered conjunctions.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13985">GITHUB#13985</a>: Introduces IndexInput#updateReadAdvice to change the ReadAdvice
+while merging vectors.
+<br /><span class="attrib">(Tejas Shah)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14000">GITHUB#14000</a>: Speed up top-k retrieval of filtered disjunctions.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13999">GITHUB#13999</a>: CombinedFieldQuery now returns non-infinite maximum scores,
+making it eligible to dynamic pruning.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13989">GITHUB#13989</a>: Faster checksum computation.
+<br /><span class="attrib">(Jean-François Boeuf)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14021">GITHUB#14021</a>: WANDScorer now computes scores on the fly, which helps prevent
+advancing "tail" clauses in many cases.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14014">GITHUB#14014</a>: Filtered disjunctions now get executed via `MaxScoreBulkScorer`.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14023">GITHUB#14023</a>: Make JVM inlining decisions more predictable in our main
+queries.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14032">GITHUB#14032</a>: Speed up PostingsEnum when positions are requested.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14011">GITHUB#14011</a>: Reduce allocation rate in HNSW concurrent merge.
+<br /><span class="attrib">(Viliam Durina)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14040">GITHUB#14040</a>: Specialized top-level DisjunctionMaxQuery evaluation when the
+tie break multiplier is 0.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14022">GITHUB#14022</a>: Optimize DFS marking of connected components in HNSW by reducing stack depth, improving performance
+and reducing allocations.
+<br /><span class="attrib">(Viswanath Kuchibhotla)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.1.0.bug_fixes" href="javascript:toggleList('v10.1.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(11)
+    <ol id="v10.1.0.bug_fixes.list">
+      <li><a href="https://github.com/apache/lucene/issues/13832">GITHUB#13832</a>: Fixed an issue where the DefaultPassageFormatter.format method did not format passages as intended
+when they were not sorted by startOffset.
+<br /><span class="attrib">(Seunghan Jung)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13884">GITHUB#13884</a>: Remove broken .toArray from Long/CharObjectHashMap entirely.
+<br /><span class="attrib">(Pan Guixin)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12686">GITHUB#12686</a>: Added support for highlighting IndexOrDocValuesQuery.
+<br /><span class="attrib">(Prudhvi Godithi)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13927">GITHUB#13927</a>: Fix StoredFieldsConsumer finish.
+<br /><span class="attrib">(linfn)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13944">GITHUB#13944</a>: Ensure deterministic order of clauses for `DisjunctionMaxQuery#toString`.
+<br /><span class="attrib">(Laurent Jakubina)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13841">GITHUB#13841</a>: Improve Tessellatorlogic when two holes share the same vertex with the polygon which was failing
+in valid polygons.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13990">GITHUB#13990</a>: Added filter to the toString() method of Knn[Float|Byte]VectorQuery
+and DiversifyingChildren[Float|Byte]KnnVectorQuery.
+<br /><span class="attrib">(Viswanath Kuchibhotla)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13819">GITHUB#13819</a>: Prevent flattening of ordered and unordered interval sources
+<br /><span class="attrib">(Jim Ferenczi)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14008">GITHUB#14008</a>: Counts provided by taxonomy facets in addition to another aggregation are now returned together with
+their corresponding ordinals.
+<br /><span class="attrib">(Paul King)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14027">GITHUB#14027</a>: Make SegmentInfos#readCommit(Directory, String, int) public
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14271">GITHUB#14271</a>: Stop closing index input when loading NRTSuggester
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.1.0.build" href="javascript:toggleList('v10.1.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v10.1.0.build.list">
+      <li>Upgrade forbiddenapis to version 3.8.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.1.0.other" href="javascript:toggleList('v10.1.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v10.1.0.other.list">
+      <li><a href="https://github.com/apache/lucene/issues/13982">GITHUB#13982</a>: Remove duplicate test code.
+<br /><span class="attrib">(Lu Xugang)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v10.0.0" href="javascript:toggleList('v10.0.0')">Release 10.0.0  [2024-10-14]</a></h3>
+<ul id="v10.0.0.list">
+  <li><a id="v10.0.0.api_changes" href="javascript:toggleList('v10.0.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(46)
+    <ol id="v10.0.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-12092">LUCENE-12092</a>: Remove deprecated UTF8TaxonomyWriterCache. Please use LruTaxonomyWriterCache
+instead.
+<br /><span class="attrib">(Vigya Sharma)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10010">LUCENE-10010</a>: AutomatonQuery, CompiledAutomaton, RunAutomaton, RegExp
+classes no longer determinize NFAs. Instead it is the responsibility
+of the caller to determinize.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10368">LUCENE-10368</a>: IntTaxonomyFacets has been make pkg-private and serves only as an internal
+implementation detail of taxonomy-faceting.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10400">LUCENE-10400</a>: Remove deprecated dictionary constructors in Kuromoji and Nori
+<br /><span class="attrib">(Tomoko Uchida)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10440">LUCENE-10440</a>: TaxonomyFacets and FloatTaxonomyFacets have been made pkg-private and only serve
+as internal implementation details of taxonomy-faceting.
+<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 removed.
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10436">LUCENE-10436</a>: Remove deprecated DocValuesFieldExistsQuery, NormsFieldExistsQuery and
+KnnVectorFieldExistsQuery.
+<br /><span class="attrib">(Zach Chen, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10561">LUCENE-10561</a>: Reduce class/member visibility of all normalizer and stemmer classes.
+<br /><span class="attrib">(Rushabh Shah)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10266">LUCENE-10266</a>: Move nearest-neighbor search on points to core.
+<br /><span class="attrib">(Rushabh Shah)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10603">LUCENE-10603</a>: Remove SortedSetDocValues#NO_MORE_ORDS definition.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/11813">GITHUB#11813</a>: Remove Operations.isFinite: the recursive implementation could be problematic
+for large automatons (WildcardQuery, PrefixQuery, RegExpQuery, etc).
+<br /><span class="attrib">(taroplus, Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/11840">GITHUB#11840</a>: Query rewrite now takes an IndexSearcher instead of IndexReader to enable concurrent
+rewriting.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/11933">GITHUB#11933</a>: Remove IOContext from Directory#openChecksumInput.
+<br /><span class="attrib">(Zach Chen)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/11814">GITHUB#11814</a>: Support deletions in IndexRearranger.
+<br /><span class="attrib">(Stefan Vodita)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12107">GITHUB#12107</a>: Remove deprecated KnnVectorField, KnnVectorQuery, VectorValues and
+LeafReader#getVectorValues.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12296">GITHUB#12296</a>: Make IndexReader and IndexReaderContext classes explicitly sealed.
+They have already been runtime-checked to only be implemented by the specific classes
+so this is effectively a non-breaking change.
+<br /><span class="attrib">(Petr Portnov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12276">GITHUB#12276</a>: Rename DaciukMihovAutomatonBuilder to StringsToAutomaton.
+<br /><span class="attrib">(Michael McCandless)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12321">GITHUB#12321</a>: Reduced visibility of StringsToAutomaton. Please use Automata#makeStringUnion instead.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12407">GITHUB#12407</a>: Removed Scorable#docID.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12580">GITHUB#12580</a>: Remove deprecated IndexSearcher#getExecutor in favour of executing concurrent tasks using
+the TaskExecutor that the searcher holds, retrieved via IndexSearcher#getTaskExecutor
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12599">GITHUB#12599</a>: Add RandomAccessInput#readBytes method to the RandomAccessInput interface.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/11023">GITHUB#11023</a>: Adding -level param to CheckIndex, making the old -fast param the default behaviour.
+<br /><span class="attrib">(Jakub Slowinski)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12873">GITHUB#12873</a>: Expressions module now uses MethodHandles to define custom functions. Support for
+custom classloaders was removed.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12243">GITHUB#12243</a>: Remove TermInSetQuery ctors taking varargs param. SortedSetDocValuesField#newSlowSetQuery,
+SortedDocValuesField#newSlowSetQuery, KeywordField#newSetQuery, KeywordField#newSetQuery now take a collection.
+<br /><span class="attrib">(Jakub Slowinski)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12881">GITHUB#12881</a>: Performance improvements to MatchHighlighter and MatchRegionRetriever. MatchRegionRetriever can be
+configured to not load matches (or content) of certain fields and to force-load other fields so that stored fields
+of a document are accessed once. A configurable limit of field matches placed in the priority queue was added
+(allows handling long fields with lots of hits more gracefully). MatchRegionRetriever utilizes IndexSearcher's
+executor to extract hit offsets concurrently.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12855">GITHUB#12855</a>: Remove deprecated DrillSideways#createDrillDownFacetsCollector extension method.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12875">GITHUB#12875</a>: Ensure token position is always increased in PathHierarchyTokenizer and ReversePathHierarchyTokenizer
+and resulting tokens do not overlap.
+<br /><span class="attrib">(Michael Froh, Lukáš Vlček)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13146">GITHUB#13146</a>, <a href="https://github.com/apache/lucene/issues/13148">GITHUB#13148</a>: Remove ByteBufferIndexInput and only use MemorySegment APIs
+for MMapDirectory.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13205">GITHUB#13205</a>: Convert IOContext, MergeInfo, and FlushInfo to record classes.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13219">GITHUB#13219</a>: The `readOnce`, `load` and `random` flags on `IOContext` have
+been replaced with a new `ReadAdvice` enum.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13242">GITHUB#13242</a>: Replace `IOContext.READ` with `IOContext.DEFAULT`.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13261">GITHUB#13261</a>: Convert `BooleanClause` class to record class.
+<br /><span class="attrib">(Pulkit Gupta)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13241">GITHUB#13241</a>: Remove Accountable interface on KnnVectorsReader.
+<br /><span class="attrib">(Pulkit Gupta)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13262">GITHUB#13262</a>: Removed deprecated constructors from DoubleField, FloatField, IntField, LongField, and LongPoint.
+Additionally, deprecated methods have been removed from ByteBuffersIndexInput, BooleanQuery and others. Please refer
+to MIGRATE.md for further details.
+<br /><span class="attrib">(Sanjay Dutt)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13337">GITHUB#13337</a>: Introduce new `IndexInput#prefetch(long)` API to give a hint to
+the directory about bytes that are about to be read.
+<br /><span class="attrib">(Adrien Grand, Uwe
+Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13408">GITHUB#13408</a>: Moved Weight#bulkScorer() to ScorerSupplier#bulkScorer() to better help parallelize
+I/O for top-level disjunctions. Weight#bulkScorer() still exists for compatibility, but delegates
+to ScorerSupplier#bulkScorer().
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13410">GITHUB#13410</a>: Removed Scorer#getWeight
+<br /><span class="attrib">(Sanjay Dutt, Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13499">GITHUB#13499</a>: Remove deprecated TopScoreDocCollector + TopFieldCollector methods (#create, #createSharedManager)
+<br /><span class="attrib">(Jakub Slowinski)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13632">GITHUB#13632</a>: CandidateMatcher public matching functions
+<br /><span class="attrib">(Bryan Jacobowitz)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13708">GITHUB#13708</a>: Move Operations.sameLanguage/subsetOf to test-framework.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13733">GITHUB#13733</a>: Move FacetsCollector#search utility methods to `FacetsCollectorManager`, replace the `Collector`
+argument with a `FacetsCollectorManager` and update the return type to include both `TopDocs` results as well as
+facets results.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13328">GITHUB#13328</a>: Convert many basic Lucene classes to record classes, including CollectionStatistics, TermStatistics and LeafMetadata.
+<br /><span class="attrib">(Shubham Chaudhary)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13780">GITHUB#13780</a>: Remove IndexSearcher#search(List&lt;LeafReaderContext&gt;, Weight, Collector) in favour of the newly
+introduced IndexSearcher#search(LeafReaderContextPartition[], Weight, Collector).
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13779">GITHUB#13779</a>:  First-class random access API for KnnVectorValues
+unifies Byte/FloatVectorValues incorporating RandomAccess* API and introduces
+DocIndexIterator for iterative access in place of direct inheritance from DISI.
+<br /><span class="attrib">(Michael Sokolov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13845">GITHUB#13845</a>: Add missing with-discountOverlaps Similarity constructor variants.
+<br /><span class="attrib">(Pierre Salagnac, Christine Poerschke, Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13820">GITHUB#13820</a>, <a href="https://github.com/apache/lucene/issues/13825">GITHUB#13825</a>, <a href="https://github.com/apache/lucene/issues/13830">GITHUB#13830</a>: Corrects DataInput.readGroupVInts to be public and not-final, removes the protected
+DataInput.readGroupVInt method.
+<br /><span class="attrib">(Zhang Chao, Robert Muir, Uwe Schindler, Dawid Weiss)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.0.0.new_features" href="javascript:toggleList('v10.0.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(12)
+    <ol id="v10.0.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10010">LUCENE-10010</a> Introduce NFARunAutomaton to run NFA directly.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+      <li>GITHUB-12767: Add a flag to enable executing using NFA in RegexpQuery.
+<br /><span class="attrib">(Patrick Zhai)</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>
+      <li><a href="https://github.com/apache/lucene/issues/12829">GITHUB#12829</a>: For indices newly created as of 10.0.0 onwards, IndexWriter preserves document blocks indexed via
+IndexWriter#addDocuments or IndexWriter#updateDocuments also when index sorting is configured. Document blocks are
+maintained alongside their parent documents during sort and merge. IndexWriterConfig now requires a parent field to be
+specified if index sorting is used together with document blocks.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13233">GITHUB#13233</a>: Add RomanianNormalizationFilter
+<br /><span class="attrib">(Trey Jones, Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13449">GITHUB#13449</a>: Sparse index: optional skip list on top of doc values which is exposed via the
+DocValuesSkipper abstraction. A new flag is added to FieldType.java that configures whether
+to create a "skip index" for doc values.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13563">GITHUB#13563</a>: Add levels to doc values skip index.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13597">GITHUB#13597</a>: Align doc value skipper interval boundaries when an interval contains a constant
+value.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13604">GITHUB#13604</a>: Add Kmeans clustering on vectors
+<br /><span class="attrib">(Mayya Sharipova, Jim Ferenczi, Tom Veasey)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13592">GITHUB#13592</a>: Take advantage of the doc value skipper when it is primary sort in SortedNumericDocValuesRangeQuery
+and SortedSetDocValuesRangeQuery.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13542">GITHUB#13542</a>: Add initial support for intra-segment concurrency. IndexSearcher now supports searching across leaf
+reader partitions concurrently. This is useful to max out available resource usage especially with force merged
+indices or big segments. There is still a performance penalty for queries that require segment-level computation
+ahead of time, such as points/range queries. This is an implementation limitation that we expect to improve in
+future releases, ad that's why intra-segment slicing is not enabled by default, but leveraged in tests when the
+searcher is created via LuceneTestCase#newSearcher. Users may override IndexSearcher#slices(List) to optionally
+create slices that target segment partitions.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13741">GITHUB#13741</a>: Implement Accountable for NFARunAutomaton, fix hashCode implementation of CompiledAutomaton.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.0.0.improvements" href="javascript:toggleList('v10.0.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(10)
+    <ol id="v10.0.0.improvements.list">
+      <li><a href="https://github.com/apache/lucene/issues/13246">GITHUB#13246</a>: Simplify bytes comparison as long comparison in NumericComparator.
+<br /><span class="attrib">(Guo feng)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10416">LUCENE-10416</a>: Update Korean Dictionary to mecab-ko-dic-2.1.1-20180720 for Nori.
+<br /><span class="attrib">(Uihyun Kim)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10614">LUCENE-10614</a>: Properly support getTopChildren in RangeFacetCounts.
+<br /><span class="attrib">(Yuting Gan)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10652">LUCENE-10652</a>: Add a top-n range faceting example to RangeFacetsExample.
+<br /><span class="attrib">(Yuting Gan)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12447">GITHUB#12447</a>: Hunspell: speed up the dictionary enumeration on suggestion
+<br /><span class="attrib">(Peter Gromov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12873">GITHUB#12873</a>: Expressions module now uses JEP 371 "Hidden Classes" with JEP 309
+"Dynamic Class-File Constants" to implement Javascript expressions.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/11657">GITHUB#11657</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-10621">LUCENE-10621</a>: Upgrade to OpenNLP 2.3.2.
+<br /><span class="attrib">(Christine Poerschke, Eric Pugh)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13209">GITHUB#13209</a>: Upgrade snowball to 26db1ab9.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12172">GITHUB#12172</a>: Update Romanian stopwords list to include the modern unicode forms.
+<br /><span class="attrib">(Trey Jones)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13707">GITHUB#13707</a>: Improve Operations.isTotal() to work with non-minimal automata.
+<br /><span class="attrib">(Dawid Weiss, Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.0.0.optimizations" href="javascript:toggleList('v10.0.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="v10.0.0.optimizations.list">
+      <li><a href="https://github.com/apache/lucene/issues/11857">GITHUB#11857</a>, <a href="https://github.com/apache/lucene/issues/11859">GITHUB#11859</a>, <a href="https://github.com/apache/lucene/issues/11893">GITHUB#11893</a>, <a href="https://github.com/apache/lucene/issues/11909">GITHUB#11909</a>: Hunspell: improved suggestion performance
+<br /><span class="attrib">(Peter Gromov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12825">GITHUB#12825</a>, <a href="https://github.com/apache/lucene/issues/12834">GITHUB#12834</a>: Hunspell: improved dictionary loading performance, allowed in-memory entry sorting.
+<br /><span class="attrib">(Peter Gromov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12372">GITHUB#12372</a>: Reduce allocation during HNSW construction
+<br /><span class="attrib">(Jonathan Ellis)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12552">GITHUB#12552</a>: Make FSTPostingsFormat load FSTs off-heap.
+<br /><span class="attrib">(Tony X)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13672">GITHUB#13672</a>: Leverage doc value skip lists in DocValuesRewriteMethod if indexed.
+<br /><span class="attrib">(Greg Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.0.0.bug_fixes" href="javascript:toggleList('v10.0.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v10.0.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10599">LUCENE-10599</a>: LogMergePolicy is more likely to keep merging segments until
+they reach the maximum merge size.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12220">GITHUB#12220</a>: Hunspell: disallow hidden title-case entries from compound middle/end.
+<br /><span class="attrib">(Peter Gromov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12878">GITHUB#12878</a>: Fix the declared Exceptions of Expression#evaluate() to match those
+of DoubleValues#doubleValue().
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13498">GITHUB#13498</a>: Avoid performance regression by constructing lazily the PointTree in NumericComparator,
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.0.0.changes_in_runtime_behavior" href="javascript:toggleList('v10.0.0.changes_in_runtime_behavior')">Changes in Runtime Behavior</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v10.0.0.changes_in_runtime_behavior.list">
+      <li><a href="https://github.com/apache/lucene/issues/13244">GITHUB#13244</a>, <a href="https://github.com/apache/lucene/issues/13264">GITHUB#13264</a>: IOContext now uses ReadAdvice#RANDOM by default for read
+operations. An implication is that `MMapDirectory` will use POSIX_MADV_RANDOM
+on POSIX systems. To fallback to OS default behaviour, pass system property via
+`-Dorg.apache.lucene.store.defaultReadAdvice=normal`. This may be useful on systems
+with lots of RAM as this increases read-ahead.
+<br /><span class="attrib">(Adrien Grand, Uwe Schindler)</span></li>
+      <li>GITHUB13293: Auto I/O throttling is now disabled by default on ConcurrentMergeScheduler.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13293">GITHUB#13293</a>: ConcurrentMergeScheduler now allows up to 50% of the threads of the host to be used
+for merging.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13277">GITHUB#13277</a>: IndexWriter treats any java.lang.Error as tragic.
+<br /><span class="attrib">(Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.0.0.changes_in_backwards_compatibility_policy" href="javascript:toggleList('v10.0.0.changes_in_backwards_compatibility_policy')">Changes in Backwards Compatibility Policy</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v10.0.0.changes_in_backwards_compatibility_policy.list">
+      <li><a href="https://github.com/apache/lucene/issues/12829">GITHUB#12829</a>: IndexWriter#addDocuments or IndexWriter#updateDocuments now require a parent field name to be
+specified in IndexWriterConfig is documents blocks are indexed and index time sorting is configured.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13230">GITHUB#13230</a>: Remove the Kp and Lovins snowball algorithms which are not supported
+or intended for general use.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13602">GITHUB#13602</a>: SearchWithCollectorTask no longer supports the `collector.class` config parameter to load a custom
+collector implementation. `collector.manager.class` allows users to load a collector manager instead.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.0.0.other" href="javascript:toggleList('v10.0.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(15)
+    <ol id="v10.0.0.other.list">
+      <li><a href="https://github.com/apache/lucene/issues/13459">GITHUB#13459</a>: Merges all immutable attributes in FieldInfos.FieldNumbers into one Hashmap saving
+memory when writing big indices. Fixes an exotic bug when calling clear where not all attributes
+were cleared.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10376">LUCENE-10376</a>: Roll up the loop in VInt/VLong in DataInput.
+<br /><span class="attrib">(Guo Feng)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10253">LUCENE-10253</a>: The @BadApple annotation has been removed from the test
+framework.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10393">LUCENE-10393</a>: Unify binary dictionary and dictionary writer in Kuromoji and Nori.
+<br /><span class="attrib">(Tomoko Uchida, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10475">LUCENE-10475</a>: Merge dictionary builders in `util` package into `dict` package in Kuromoji and Nori.
+All classes in `org.apache.lucene.analysis.[ja|ko].util` was moved to `org.apache.lucene.analysis.[ja|ko].dict`.
+<br /><span class="attrib">(Tomoko Uchida)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-10493">LUCENE-10493</a>: Factor out Viterbi algorithm in Kuromoji and Nori to analysis-common.
+<br /><span class="attrib">(Tomoko Uchida)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/977">GITHUB#977</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-9500">LUCENE-9500</a>: Remove the deflater hack introduced because of JDK-8252739
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/11960">GITHUB#11960</a>: Hunspell: supported empty dictionaries
+<br /><span class="attrib">(Peter Gromov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12239">GITHUB#12239</a>: Hunspell: reduced suggestion set dependency on the hash table order
+<br /><span class="attrib">(Peter Gromov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/9049">GITHUB#9049</a>: Fixing bug in UnescapedCharSequence#toStringEscaped()
+<br /><span class="attrib">(Jakub Slowinski)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13001">GITHUB#13001</a>: Put Thread#sleep() on the list of forbidden APIs.
+<br /><span class="attrib">(Shubham Chaudhary)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12753">GITHUB#12753</a>: Bump minimum required Java version to 21
+<br /><span class="attrib">(Chris Hegarty, Robert Muir, Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13296">GITHUB#13296</a>: Convert the FieldEntry, a static nested class, into a record.
+<br /><span class="attrib">(Sanjay Dutt)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13332">GITHUB#13332</a>: Improve MissingDoclet linter to check records correctly.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13499">GITHUB#13499</a>: Remove usage of TopScoreDocCollector + TopFieldCollector deprecated methods (#create, #createSharedManager)
+<br /><span class="attrib">(Jakub Slowinski)</span></li>
+    </ol>
+  </li>
+  <li><a id="v10.0.0.build" href="javascript:toggleList('v10.0.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v10.0.0.build.list">
+      <li><a href="https://github.com/apache/lucene/issues/13649">GITHUB#13649</a>: Fix eclipse ide settings generation #13649
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13698">GITHUB#13698</a>: Upgrade to gradle 8.10
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v9.12.2" href="javascript:toggleList('v9.12.2')">Release 9.12.2 </a></h3>
+<ul id="v9.12.2.list">
+  <li><a id="v9.12.2.bug_fixes" href="javascript:toggleList('v9.12.2.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v9.12.2.bug_fixes.list">
+      <li><a href="https://github.com/apache/lucene/issues/14654">GITHUB#14654</a>: ValueSource.fromDoubleValuesSource(dvs).getSortField() would throw errors when
+used if the DoubleValuesSource needed scores.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14527">GITHUB#14527</a>, <a href="https://github.com/apache/lucene/issues/14765">GITHUB#14765</a>: Reduce NeighborArray heap memory.
+<br /><span class="attrib">(weizijun, Ben Trent)</span></li>
+      <li>GITHUB##14732: Fix IndexSortSortedNumericDocValuesRangeQuery for int sort
+<br /><span class="attrib">(Mayya Sharipova)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v9.12.1" href="javascript:toggleList('v9.12.1')">Release 9.12.1  [2024-12-13]</a></h3>
+<ul id="v9.12.1.list">
+  <li><a id="v9.12.1.bug_fixes" href="javascript:toggleList('v9.12.1.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(6)
+    <ol id="v9.12.1.bug_fixes.list">
+      <li><a href="https://github.com/apache/lucene/issues/13947">GITHUB#13947</a>: Fix ord-to-doc mapping when searching Lucene 9.0.0 hnsw indices
+<br /><span class="attrib">(Michael Sokolov, Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13867">GITHUB#13867</a>: Fix backwards compatibility bug that caused 9.12.0 to
+incorrectly throw IllegalStateException when trying to open an
+IndexReader on an index created with quantized (int4, int7, int8)
+KNN vectors using Lucene99HnswScalarQuantizedVectorsFormat.  This
+was an accidental backwards compatibility break: such indices should
+be readable and writable by any future 9.x and 10.x Lucene releases.
+But note that int8 compression was buggy and can no longer be
+written but can be read from an existing index.
+<br /><span class="attrib">(Ionut
+Anghelcovici, Michael McCandless)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13841">GITHUB#13841</a>: Improve Tessellatorlogic when two holes share the same vertex with the polygon which was failing
+in valid polygons.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13986">GITHUB#13986</a>: Allow easier configuration of the Panama Vectorization provider with
+newer Java versions. Set the `org.apache.lucene.vectorization.upperJavaFeatureVersion`
+system property to increase the set of Java versions that Panama Vectorization will
+provide optimized implementations for.
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14008">GITHUB#14008</a>: Counts provided by taxonomy facets in addition to another aggregation are now returned together with
+their corresponding ordinals.
+<br /><span class="attrib">(Paul King)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/14027">GITHUB#14027</a>: Make SegmentInfos#readCommit(Directory, String, int) public
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.12.1.api_changes" href="javascript:toggleList('v9.12.1.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.12.1.api_changes.list">
+      <li><a href="https://github.com/apache/lucene/issues/13845">GITHUB#13845</a>: Add missing with-discountOverlaps Similarity constructor variants.
+<br /><span class="attrib">(Pierre Salagnac, Christine Poerschke, Robert Muir)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v9.12.0" href="javascript:toggleList('v9.12.0')">Release 9.12.0  [2024-09-28]</a></h3>
+<ul id="v9.12.0.list">
+  <li><a id="v9.12.0.security_fixes" href="javascript:toggleList('v9.12.0.security_fixes')">Security Fixes</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.12.0.security_fixes.list">
+      <li>Deserialization of Untrusted Data vulnerability in Apache Lucene Replicator - CVE-2024-45772
+<br /><span class="attrib">(Summ3r from Vidar-Team, Robert Muir, Paul Irwin)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.12.0.api_changes" href="javascript:toggleList('v9.12.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(8)
+    <ol id="v9.12.0.api_changes.list">
+      <li><a href="https://github.com/apache/lucene/issues/13806">GITHUB#13806</a>: Add TermInSetQuery#getBytesRefIterator to be able to iterate over query terms.
+<br /><span class="attrib">(Christoph Büscher)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13469">GITHUB#13469</a>: Expose FlatVectorsFormat as a first-class format; can be configured using a custom Codec.
+<br /><span class="attrib">(Michael Sokolov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13612">GITHUB#13612</a>: Hunspell: add Suggester#proceedPastRep to avoid losing relevant suggestions.
+<br /><span class="attrib">(Peter Gromov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13603">GITHUB#13603</a>: Introduced `IndexSearcher#searchLeaf(LeafReaderContext, Weight, Collector)` protected method to
+facilitate customizing per-leaf behavior of search without requiring to override
+`search(LeafReaderContext[], Weight, Collector)` which requires overriding the entire loop across the leaves
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13559">GITHUB#13559</a>: Add BitSet#nextSetBit(int, int) to get the index of the first set bit in range.
+<br /><span class="attrib">(Egor Potemkin)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13568">GITHUB#13568</a>: Add DoubleValuesSource#toSortableLongDoubleValuesSource and
+MultiDoubleValuesSource#toSortableMultiLongValuesSource methods.
+<br /><span class="attrib">(Shradha Shankar)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13568">GITHUB#13568</a>, <a href="https://github.com/apache/lucene/issues/13750">GITHUB#13750</a>: Add DrillSideways#search method that supports any CollectorManagers for drill-sideways dimensions
+or drill-down.
+<br /><span class="attrib">(Egor Potemkin)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13757">GITHUB#13757</a>: For similarities, provide default computeNorm implementation and remove remaining discountOverlaps setters.
+<br /><span class="attrib">(Christine Poerschke, Adrien Grand, Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.12.0.new_features" href="javascript:toggleList('v9.12.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="v9.12.0.new_features.list">
+      <li><a href="https://github.com/apache/lucene/issues/13430">GITHUB#13430</a>: Allow configuring the search concurrency via
+TieredMergePolicy#setTargetSearchConcurrency. This in-turn instructs the
+merge policy to try to have at least this number of segments on the highest
+tier.
+<br /><span class="attrib">(Adrien Grand, Carlos Delgado)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13517">GITHUB#13517</a>: Allow configuring the search concurrency on LogDocMergePolicy
+and LogByteSizeMergePolicy via a new #setTargetConcurrency setter.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13568">GITHUB#13568</a>: Add sandbox facets module to compute facets while collecting.
+<br /><span class="attrib">(Egor Potemkin, Shradha Shankar)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13678">GITHUB#13678</a>: Add support JDK 23 to the Panama Vectorization Provider.
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13689">GITHUB#13689</a>: Add a new faceting feature, dynamic range facets, which automatically picks a balanced set of numeric
+ranges based on the distribution of values that occur across all hits.  For use cases that have a highly variable
+numeric doc values field, such as "price" in an e-commerce application, this facet method is powerful as it allows the
+presented ranges to adapt depending on what hits the query actually matches.  This is in contrast to existing range
+faceting that requires the application to provide the specific fixed ranges up front.
+<br /><span class="attrib">(Yuting Gan, Greg Miller,
+Stefan Vodita)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.12.0.improvements" href="javascript:toggleList('v9.12.0.improvements')">Improvements</a>&nbsp;&nbsp;&nbsp;(10)
+    <ol id="v9.12.0.improvements.list">
+      <li><a href="https://github.com/apache/lucene/issues/13475">GITHUB#13475</a>: Re-enable intra-merge parallelism except for terms, norms, and doc values.
+Related to <a href="https://github.com/apache/lucene/issues/13478">GITHUB#13478</a>.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13548">GITHUB#13548</a>: Refactor and javadoc update for KNN vector writer classes.
+<br /><span class="attrib">(Patrick Zhai)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13562">GITHUB#13562</a>: Add Intervals.regexp and Intervals.range methods to produce  IntervalsSource
+for regexp and range queries.
+<br /><span class="attrib">(Mayya Sharipova)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13625">GITHUB#13625</a>: Remove BitSet#nextSetBit code duplication.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13285">GITHUB#13285</a>: Early terminate graph searches of AbstractVectorSimilarityQuery to follow timeout set from
+IndexSearcher#setTimeout(QueryTimeout).
+<br /><span class="attrib">(Kaival Parikh)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13633">GITHUB#13633</a>: Add ability to read/write knn vector values to a MemoryIndex.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12627">GITHUB#12627</a>: patch HNSW graphs to improve reachability of all nodes from entry points
+<p>
+</li>
+      <li><a href="https://github.com/apache/lucene/issues/13201">GITHUB#13201</a>: Better cost estimation on MultiTermQuery over few terms.
+<br /><span class="attrib">(Michael Froh)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13735">GITHUB#13735</a>: Migrate monitor package usage of deprecated IndexSearcher#search(Query, Collector)
+to IndexSearcher#search(Query, CollectorManager).
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13746">GITHUB#13746</a>: Introduce ProfilerCollectorManager to parallelize search when using ProfilerCollector.
+<br /><span class="attrib">(Luca Cavanna)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.12.0.optimizations" href="javascript:toggleList('v9.12.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(18)
+    <ol id="v9.12.0.optimizations.list">
+      <li><a href="https://github.com/apache/lucene/issues/13439">GITHUB#13439</a>: Avoid unnecessary memory allocation in PackedLongValues#Iterator.
+<br /><span class="attrib">(Zhang Chao)</span></li>
+      <li>GITHUB##13425: Rewrite SortedNumericDocValuesRangeQuery to MatchNoDocsQuery when the upper bound is smaller than the
+lower bound.
+<br /><span class="attrib">(Ioana Tagirta)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13322">GITHUB#13322</a>: Implement Weight#count for vector values in the FieldExistsQuery.
+<br /><span class="attrib">(Pan Guixin)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13454">GITHUB#13454</a>: MultiTermQuery returns null ScoreSupplier in cases where
+no query terms are present in the index segment
+<br /><span class="attrib">(Mayya Sharipova)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13431">GITHUB#13431</a>: Replace TreeMap and use compiled Patterns in Japanese UserDictionary.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12941">GITHUB#12941</a>: Don't preserve auxiliary buffer contents in LSBRadixSorter if it grows.
+<br /><span class="attrib">(Stefan Vodita)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13175">GITHUB#13175</a>: Stop double-checking priority queue inserts in some FacetCount classes.
+<br /><span class="attrib">(Jakub Slowinski)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13538">GITHUB#13538</a>: Slightly reduce heap usage for HNSW and scalar quantized vector writers.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/12100">GITHUB#12100</a>: WordBreakSpellChecker.suggestWordBreaks now does a breadth first search, allowing it to return
+better matches with fewer evaluations
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13582">GITHUB#13582</a>: Stop requiring MaxScoreBulkScorer's outer window from having at
+least INNER_WINDOW_SIZE docs.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13570">GITHUB#13570</a>, <a href="https://github.com/apache/lucene/issues/13574">GITHUB#13574</a>, <a href="https://github.com/apache/lucene/issues/13535">GITHUB#13535</a>: Avoid performance degradation with closing shared Arenas.
+Closing many individual index files can potentially lead to a degradation in execution performance.
+Index files are mmapped one-to-one with the JDK's foreign shared Arena. The JVM deoptimizes the top
+few frames of all threads when closing a shared Arena (see JDK-8335480). We mitigate this situation
+when running with JDK 21 and greater, by 1) using a confined Arena where appropriate, and 2) grouping
+files from the same segment to a single shared Arena.
+A system property has been added that allows to control the total maximum number of mmapped files
+that may be associated with a single shared Arena. For example, to set the max number of permits to
+256, pass the following on the command line
+<ul class="bulleted-list">
+<li class="bulleted-list">
+Dorg.apache.lucene.store.MMapDirectory.sharedArenaMaxPermits=256. Setting a value of 1 associates
+</li>
+</ul>
+a single file to a single shared arena.
+<br /><span class="attrib">(Chris Hegarty, Michael Gibney, Uwe Schindler)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13585">GITHUB#13585</a>: Lucene912PostingsFormat, the new default postings format, now
+only has 2 levels of skip data, which are inlined into postings instead of
+being stored at the end of postings lists. This translates into better
+performance for queries that need skipping such as conjunctions.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13581">GITHUB#13581</a>: OnHeapHnswGraph no longer allocates a lock for every graph node
+<br /><span class="attrib">(Mike Sokolov)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13636">GITHUB#13636</a>, <a href="https://github.com/apache/lucene/issues/13658">GITHUB#13658</a>: Optimizations to the decoding logic of blocks of
+postings.
+<br /><span class="attrib">(Adrien Grand, Uwe Schindler, Greg Miller)</span></li>
+      <li>GITHUB##13644: Improve NumericComparator competitive iterator logic by comparing the missing value with the top
+value even after the hit queue is full
+<br /><span class="attrib">(Pan Guixin)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13587">GITHUB#13587</a>: Use Max WAND optimizations with ToParentBlockJoinQuery when using ScoreMode.Max
+<br /><span class="attrib">(Mike Pellegrini)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13742">GITHUB#13742</a>: Reorder checks in LRUQueryCache#count
+<br /><span class="attrib">(Shubham Chaudhary)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13697">GITHUB#13697</a>: Add a bulk scorer to ToParentBlockJoinQuery, which delegates to the bulk scorer of the child query.
+ This should speed up query evaluation when the child query has a specialized bulk scorer, such as disjunctive queries.
+<br /><span class="attrib">(Mike Pellegrini)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.12.0.changes_in_runtime_behavior" href="javascript:toggleList('v9.12.0.changes_in_runtime_behavior')">Changes in runtime behavior</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.12.0.changes_in_runtime_behavior.list">
+      <li><a href="https://github.com/apache/lucene/issues/13472">GITHUB#13472</a>: When an executor is provided to the IndexSearcher constructor, the searcher now executes tasks on the
+thread that invoked a search as well as its configured executor. Users should reduce the executor's thread-count by 1
+to retain the previous level of parallelism. Moreover, it is now possible to start searches from the same executor
+that is configured in the IndexSearcher without risk of deadlocking. A separate executor for starting searches is no
+longer required.
+<br /><span class="attrib">(Armin Braun)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.12.0.bug_fixes" href="javascript:toggleList('v9.12.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(10)
+    <ol id="v9.12.0.bug_fixes.list">
+      <li><a href="https://github.com/apache/lucene/issues/13384">GITHUB#13384</a>: Fix highlighter to use longer passages instead of shorter individual terms.
+<br /><span class="attrib">(Zack Kendall)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13463">GITHUB#13463</a>: Address bug in MultiLeafKnnCollector causing #minCompetitiveSimilarity to stay artificially low in
+some corner cases.
+<br /><span class="attrib">(Greg Miller)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13553">GITHUB#13553</a>: Correct RamUsageEstimate for scalar quantized knn vector formats so that raw vectors are correctly
+accounted for.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13615">GITHUB#13615</a>: Correct scalar quantization when used in conjunction with COSINE similarity. Vectors are normalized
+before quantization to ensure the cosine similarity is correctly calculated.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13627">GITHUB#13627</a>: Fix race condition on flush for DWPT seqNo generation.
+<br /><span class="attrib">(Ben Trent, Ao Li)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13691">GITHUB#13691</a>: Fix incorrect exponent value in explain of SigmoidFunction.
+<br /><span class="attrib">(Owais Kazi)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13703">GITHUB#13703</a>: Fix bug in LatLonPoint queries where narrow polygons close to latitude 90 don't
+match any points due to an Integer overflow.
+<br /><span class="attrib">(Ignacio Vera)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13641">GITHUB#13641</a>: Unify how KnnFormats handle missing fields and correctly handle missing vector fields when
+merging segments.
+<br /><span class="attrib">(Ben Trent)</span></li>
+      <li><a href="https://github.com/apache/lucene/issues/13519">GITHUB#13519</a>: 8 bit scalar vector quantization is no longer
+supported: it was buggy starting in 9.11 (<a href="https://github.com/apache/lucene/issues/13197">GITHUB#13197</a>).  4 and 7
+bit quantization are still supported.  Existing (9.x) Lucene indices
+that previously used 8 bit quantization can still be read/searched
+but the results from `KNN*VectorQuery` are silently buggy.  Further
+8 bit quantized vector indexing into such (9.11) indices is not
+permitted, so your path forward if you wish to continue using the
+same 9.11 index is to index additional vectors into the same field
+with either 4 or 7 bit quantization (or no quantization), and ensure
+all older (9.11 written) segments are rewritten either via
+`IndexWriter.forceMerge` or
+`IndexWriter.addIndexes(CodecReader...)`, or reindexing entirely.
+<p>
+</li>
+      <li><a href="https://github.com/apache/lucene/issues/13799">GITHUB#13799</a>: Disable intra-merge parallelism for all structures but kNN vectors.
+<br /><span class="attrib">(Ben Trent)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.12.0.build" href="javascript:toggleList('v9.12.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v9.12.0.build.list">
+      <li><a href="https://github.com/apache/lucene/issues/13695">GITHUB#13695</a>, <a href="https://github.com/apache/lucene/issues/13696">GITHUB#13696</a>: Fix Gradle build sometimes gives spurious "unreferenced license file" warnings.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v9.12.0.other" href="javascript:toggleList('v9.12.0.other')">Other</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v9.12.0.other.list">
+      <li><a href="https://github.com/apache/lucene/issues/13720">GITHUB#13720</a>: Add float comparison based on unit of least precision and use it to stop test failures caused by float

[... 20467 lines stripped ...]