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 2024/12/14 22:52:24 UTC
svn commit: r73696 [2/16] - in /dev/lucene/lucene-10.1.0-RC1-rev-6a0531b0f48a0e781a7f72e9639c5f94138118ea: ./ 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.1.0-RC1-rev-6a0531b0f48a0e781a7f72e9639c5f94138118ea/lucene/changes/Changes.html
==============================================================================
--- dev/lucene/lucene-10.1.0-RC1-rev-6a0531b0f48a0e781a7f72e9639c5f94138118ea/lucene/changes/Changes.html (added)
+++ dev/lucene/lucene-10.1.0-RC1-rev-6a0531b0f48a0e781a7f72e9639c5f94138118ea/lucene/changes/Changes.html Sat Dec 14 22:52:15 2024
@@ -0,0 +1,21315 @@
+<!--
+**********************************************************
+** 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\\\\.1\\\\.0|v10\\\\.0\\\\.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.1.0.list'
+ && list.id != 'v10.0.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.1.0' || anchor.id == 'v10.0.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.1.0" href="javascript:toggleList('v10.1.0')">Release 10.1.0 </a></h2>
+<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> (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<BooleanClause>) 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> (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> (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> (24)
+ <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<String,Object> 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<String,Object> 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>
+ </ol>
+ </li>
+ <li><a id="v10.1.0.bug_fixes" href="javascript:toggleList('v10.1.0.bug_fixes')">Bug Fixes</a> (8)
+ <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>
+ </ol>
+ </li>
+ <li><a id="v10.1.0.build" href="javascript:toggleList('v10.1.0.build')">Build</a> (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> (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>
+<h2><a id="v10.0.1" href="javascript:toggleList('v10.0.1')">Release 10.0.1 </a></h2>
+<ul id="v10.0.1.list">
+ <li><a id="v10.0.1.bug_fixes" href="javascript:toggleList('v10.0.1.bug_fixes')">Bug Fixes</a> (2)
+ <ol id="v10.0.1.bug_fixes.list">
+ <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>
+</ul>
+<h2><a id="older" href="javascript:toggleList('older')">Older Releases</a></h2>
+<div id="older.list">
+<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> (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<LeafReaderContext>, 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> (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> (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> (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> (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> (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> (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> (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> (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.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> (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> (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> (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> (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> (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> (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> (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> (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> (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
+summation not being associative in IEEE 754.
+<br /><span class="attrib">(Alex Herbert, Stefan Vodita)</span></li>
+ <li>Remove code triggering forbidden-apis regarding Java serialization.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir)</span></li>
+ </ol>
+ </li>
+</ul>
+<h3><a id="v9.11.1" href="javascript:toggleList('v9.11.1')">Release 9.11.1 [2024-06-27]</a></h3>
+<ul id="v9.11.1.list">
+ <li><a id="v9.11.1.bug_fixes" href="javascript:toggleList('v9.11.1.bug_fixes')">Bug Fixes</a> (5)
+ <ol id="v9.11.1.bug_fixes.list">
+ <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>
+ <li><a href="https://github.com/apache/lucene/issues/13501">GITHUB#13501</a>, <a href="https://github.com/apache/lucene/issues/13478">GITHUB#13478</a>: Remove intra-merge parallelism for everything except HNSW graph merges.
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13498">GITHUB#13498</a>, <a href="https://github.com/apache/lucene/issues/13340">GITHUB#13340</a>: Allow adding a parent field to an index with no fields
+<br /><span class="attrib">(Michael Sokolov)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12431">GITHUB#12431</a>: Fix IndexOutOfBoundsException thrown in DefaultPassageFormatter
+by unordered matches.
+<br /><span class="attrib">(Stephane Campinas)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13493">GITHUB#13493</a>: StringValueFacetCounts stops throwing NPE when faceting over an empty match-set.
+<br /><span class="attrib">(Grebennikov Roman,
+Stefan Vodita)</span></li>
+ </ol>
+ </li>
+</ul>
+<h3><a id="v9.11.0" href="javascript:toggleList('v9.11.0')">Release 9.11.0 [2024-06-06]</a></h3>
+<ul id="v9.11.0.list">
+ <li><a id="v9.11.0.api_changes" href="javascript:toggleList('v9.11.0.api_changes')">API Changes</a> (2)
+ <ol id="v9.11.0.api_changes.list">
+ <li><a href="https://github.com/apache/lucene/issues/13145">GITHUB#13145</a>: Deprecate ByteBufferIndexInput as it will be removed in Lucene 10.0.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13422">GITHUB#13422</a>: an explicit dependency on the HPPC library is removed in favor of an internal repackaged copy in
+oal.internal.hppc. If you relied on HPPC as a transitive dependency, you'll have to add it to your project explicitly.
+The HPPC classes now bundled in Lucene core are internal and will have restricted access in future releases, please do
+not use them.
+<br /><span class="attrib">(Bruno Roustant, Dawid Weiss, Uwe Schindler, Chris Hegarty)</span></li>
+ </ol>
+ </li>
+ <li><a id="v9.11.0.new_features" href="javascript:toggleList('v9.11.0.new_features')">New Features</a> (9)
+ <ol id="v9.11.0.new_features.list">
+ <li><a href="https://github.com/apache/lucene/issues/13125">GITHUB#13125</a>: Recursive graph bisection is now supported on indexes that have blocks, as long as
+they configure a parent field via `IndexWriterConfig#setParentField`.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12915">GITHUB#12915</a>: Add new token filters for Japanese sutegana (æ¨ã¦ä»®å). This introduces JapaneseHiraganaUppercaseFilter
+and JapaneseKatakanaUppercaseFilter.
+<br /><span class="attrib">(Dai Sugimori)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13196">GITHUB#13196</a>, <a href="https://github.com/apache/lucene/issues/13222">GITHUB#13222</a>: Add support for posix_madvise to MMapDirectory: If running on
+Linux/macOS and Java 21 or later, MMapDirectory uses IOContext to pass suitable MADV flags to
+kernel of operating system. In particular, merging now passes POSIX_MADV_SEQUENTIAL to the readers
+that are being merged, and searching passes POSIX_MADV_RANDOM to vector data files - including
+quantized vector data files, HNSW graphs, stored fields data files and term vectors data files.
+This may improve paging logic especially when working with large indexes under memory pressure.
+<br /><span class="attrib">(Uwe Schindler, Chris Hegarty, Robert Muir, Adrien Grand)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13197">GITHUB#13197</a>: Expand support for new scalar bit levels for HNSW vectors. This includes 4-bit vectors and an option
+to compress them to gain a 50% reduction in memory usage.
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13268">GITHUB#13268</a>: Add ability for UnifiedHighlighter to highlight a field based on combined matches from multiple fields.
+<br /><span class="attrib">(Mayya Sharipova, Jim Ferenczi)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13288">GITHUB#13288</a>: Make HNSW and Flat storage vector formats easier to extend with new FlatVectorScorer interface. Add
+new Hnsw format for binary quantized vectors.
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13181">GITHUB#13181</a>: Add new VectorScorer interface to vector value iterators. This allows for vector codecs to supply
+simpler and more optimized vector scoring when iterating vector values directly.
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13414">GITHUB#13414</a>: Counts are always available in the result when using taxonomy facets.
+<br /><span class="attrib">(Stefan Vodita)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13445">GITHUB#13445</a>: Add new option when calculating scalar quantiles. The new option of setting `confidenceInterval` to
+`0` will now dynamically determine the quantiles through a grid search over multiple quantiles calculated
+by multiple intervals.
+<br /><span class="attrib">(Ben Trent)</span></li>
+ </ol>
+ </li>
+ <li><a id="v9.11.0.improvements" href="javascript:toggleList('v9.11.0.improvements')">Improvements</a> (14)
+ <ol id="v9.11.0.improvements.list">
+ <li><a href="https://github.com/apache/lucene/issues/13092">GITHUB#13092</a>: `static final Map` constants have been made immutable
+<br /><span class="attrib">(Dmitry Cherniachenko)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13041">GITHUB#13041</a>: TokenizedPhraseQueryNode code cleanup
+<br /><span class="attrib">(Dmitry Cherniachenko)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13087">GITHUB#13087</a>: Changed `static final Set` constants to be immutable. Among others it affected
+ScandinavianNormalizer.ALL_FOLDINGS set with public access.
+<br /><span class="attrib">(Dmitry Cherniachenko)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13155">GITHUB#13155</a>: Hunspell: allow ignoring exceptions on duplicate ICONV/OCONV mappings
+<br /><span class="attrib">(Peter Gromov)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13156">GITHUB#13156</a>: Hunspell: don't proceed with other suggestions if we found good REP ones
+<br /><span class="attrib">(Peter Gromov)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13066">GITHUB#13066</a>: Support getMaxScore of DisjunctionSumScorer for non top level scoring clause
+<br /><span class="attrib">(Shintaro Murakami)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13124">GITHUB#13124</a>: MergeScheduler can now provide an executor for intra-merge parallelism. The first
+implementation is the ConcurrentMergeScheduler and the Lucene99HnswVectorsFormat will use it if no other
+executor is provided.
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13239">GITHUB#13239</a>: Upgrade icu4j to version 74.2.
+<br /><span class="attrib">(Robert Muir)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13202">GITHUB#13202</a>: Early terminate graph and exact searches of AbstractKnnVectorQuery 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/12966">GITHUB#12966</a>: Move most of the responsibility from TaxonomyFacets implementations to TaxonomyFacets itself.
+This reduces code duplication and enables future development.
+<br /><span class="attrib">(Stefan Vodita)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13362">GITHUB#13362</a>: Add sub query explanations to DisjunctionMaxQuery, if the overall query didn't match.
+<br /><span class="attrib">(Tim Grein)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13385">GITHUB#13385</a>: Add Intervals.noIntervals() method to produce an empty IntervalsSource.
+(Aniketh Jain, Uwe Schindler, Alan Woodward))
+<p>
+</li>
+ <li><a href="https://github.com/apache/lucene/issues/13276">GITHUB#13276</a>: UnifiedHighlighter: new 'passageSortComparator' option to allow sorting other than offset order.
+<br /><span class="attrib">(Seunghan Jung)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13429">GITHUB#13429</a>: Hunspell: speed up "compress"; minimize the number of the generated entries; don't even consider "forbidden" entries anymore
+<br /><span class="attrib">(Peter Gromov)</span></li>
+ </ol>
+ </li>
+ <li><a id="v9.11.0.optimizations" href="javascript:toggleList('v9.11.0.optimizations')">Optimizations</a> (24)
+ <ol id="v9.11.0.optimizations.list">
+ <li><a href="https://github.com/apache/lucene/issues/13306">GITHUB#13306</a>: Use RWLock to access LRUQueryCache to reduce contention.
+<br /><span class="attrib">(Boice Huang)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13252">GITHUB#13252</a>: Replace handwritten loops compare with Arrays.compareUnsigned in SegmentTermsEnum.
+<br /><span class="attrib">(zhouhui)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12996">GITHUB#12996</a>: Reduce ArrayUtil#grow in decompress.
+<br /><span class="attrib">(Zhang Chao)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13115">GITHUB#13115</a>: Short circuit queued flush check when flush on update is disabled
+<br /><span class="attrib">(Prabhat Sharma)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13085">GITHUB#13085</a>: Remove unnecessary toString() / substring() calls to save some String allocations
+<br /><span class="attrib">(Dmitry Cherniachenko)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13121">GITHUB#13121</a>: Speedup multi-segment HNSW graph search for diversifying child kNN queries. Builds on <a href="https://github.com/apache/lucene/issues/12962">GITHUB#12962</a>.
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13184">GITHUB#13184</a>: Make the HitQueue size more appropriate for KNN exact search
+<br /><span class="attrib">(Pan Guixin)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13199">GITHUB#13199</a>: Speed up dynamic pruning by breaking point estimation when threshold get exceeded.
+<br /><span class="attrib">(Guo Feng)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13203">GITHUB#13203</a>: Speed up writeGroupVInts
+<br /><span class="attrib">(Zhang Chao)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13224">GITHUB#13224</a>: Use singleton for all-zeros DirectMonotonicReader.Meta
+<br /><span class="attrib">(Armin Braun)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13232">GITHUB#13232</a> : Introduce singleton for PackedInts.NullReader of size 256
+<br /><span class="attrib">(Armin Braun)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/11888">GITHUB#11888</a>: Binary search the BlockTree terms dictionary entries when all suffixes have the same length
+in a leaf block, speeding up cases like primary key lookup on an id field when all ids are the same length.
+<br /><span class="attrib">(zhouhui)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13149">GITHUB#13149</a>: Made PointRangeQuery faster, for some segment sizes, by reducing the amount of virtual calls to
+IntersectVisitor::visit(int).
+<br /><span class="attrib">(Anton Hägerstrand)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12966">GITHUB#12966</a>: FloatTaxonomyFacets can now collect values into a sparse structure, like IntTaxonomyFacets already
+could.
+<br /><span class="attrib">(Stefan Vodita)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13284">GITHUB#13284</a>: Per-field doc values and knn vectors readers now use a HashMap internally instead of
+a TreeMap.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13321">GITHUB#13321</a>: Improve compressed int4 quantized vector search by utilizing SIMD inline with the decompression
+process.
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12408">GITHUB#12408</a>: Lazy initialization improvements for Facets implementations when there are segments with no hits
+to count.
+<br /><span class="attrib">(Greg Miller)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13327">GITHUB#13327</a>: Reduce memory usage of field maps in FieldInfos and BlockTree TermsReader.
+<br /><span class="attrib">(Bruno Roustant, David Smiley)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13339">GITHUB#13339</a>: Add a MemorySegment Vector scorer - for scoring without copying on-heap
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13368">GITHUB#13368</a>: Replace Map<Integer, Object> by primitive IntObjectHashMap.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13392">GITHUB#13392</a>: Replace Map<Long, Object> by primitive LongObjectHashMap.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13400">GITHUB#13400</a>: Replace Set<Integer> by IntHashSet and Set<Long> by LongHashSet.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13406">GITHUB#13406</a>: Replace List<Integer> by IntArrayList and List<Long> by LongArrayList.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13420">GITHUB#13420</a>: Replace Map<Character> by CharObjectHashMap and Set<Character> by CharHashSet.
+<br /><span class="attrib">(Bruno Roustant)</span></li>
+ </ol>
+ </li>
+ <li><a id="v9.11.0.bug_fixes" href="javascript:toggleList('v9.11.0.bug_fixes')">Bug Fixes</a> (16)
+ <ol id="v9.11.0.bug_fixes.list">
+ <li><a href="https://github.com/apache/lucene/issues/13105">GITHUB#13105</a>: Fix ByteKnnVectorFieldSource & FloatKnnVectorFieldSource to work correctly when a segment does not contain
+any docs with vectors
+<br /><span class="attrib">(hossman)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13017">GITHUB#13017</a>: Fix DV update files referenced by merge will be deleted by concurrent flush.
+<br /><span class="attrib">(Jialiang Guo)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13145">GITHUB#13145</a>: Detect MemorySegmentIndexInput correctly in NRTSuggester.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13154">GITHUB#13154</a>: Hunspell GeneratingSuggester: ensure there are never more than 100 roots to process
+<br /><span class="attrib">(Peter Gromov)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13162">GITHUB#13162</a>: Fix NPE when LeafReader return null VectorValues
+<br /><span class="attrib">(Pan Guixin)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13169">GITHUB#13169</a>: Fix potential race condition in DocumentsWriter & DocumentsWriterDeleteQueue
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13204">GITHUB#13204</a>: Fix equals/hashCode of IOContext.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13206">GITHUB#13206</a>: Subtract deleted file size from the cache size of NRTCachingDirectory.
+<br /><span class="attrib">(Jean-François Boeuf)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12966">GITHUB#12966</a>: Aggregation facets no longer assume that aggregation values are positive.
+<br /><span class="attrib">(Stefan Vodita)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13356">GITHUB#13356</a>: Ensure negative scores are not returned from scalar quantization scorer.
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13366">GITHUB#13366</a>: Disallow NaN and Inf values in scalar quantization and better handle extreme cases.
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13369">GITHUB#13369</a>: Fix NRT opening failure when soft deletes are enabled and the document fails to index before a point
+field is written
+<br /><span class="attrib">(Ben Trent)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13378">GITHUB#13378</a>: Fix points writing with no values
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13374">GITHUB#13374</a>: Fix bug in SQ when just a single vector present in a segment
+<br /><span class="attrib">(Chris Hegarty)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13376">GITHUB#13376</a>: Fix integer overflow exception in postings encoding as group-varint.
+<br /><span class="attrib">(Zhang Chao, Guo Feng)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13421">GITHUB#13421</a>: Fixes TestOrdinalMap.testRamBytesUsed for multiple default PackedInts.NullReader instances.
+<br /><span class="attrib">(Amir Raza)</span></li>
+ </ol>
+ </li>
+ <li><a id="v9.11.0.build" href="javascript:toggleList('v9.11.0.build')">Build</a> (1)
+ <ol id="v9.11.0.build.list">
+ <li>Upgrade forbiddenapis to version 3.7 and ASM for APIJAR extraction to 9.7.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+ </ol>
+ </li>
+ <li><a id="v9.11.0.other" href="javascript:toggleList('v9.11.0.other')">Other</a> (3)
+ <ol id="v9.11.0.other.list">
+ <li><a href="https://github.com/apache/lucene/issues/13068">GITHUB#13068</a>: Replace numerous `brToString(BytesRef)` copies with a `ToStringUtils` method
+<br /><span class="attrib">(Dmitry Cherniachenko)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13077">GITHUB#13077</a>: Add public getter for SynonymQuery#field
+<br /><span class="attrib">(Andrey Bozhko)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/13393">GITHUB#13393</a>: Add support for reloading the SPI for KnnVectorsFormat class
+<br /><span class="attrib">(Navneet Verma)</span></li>
+ </ol>
+ </li>
+</ul>
+<h3><a id="v9.10.0" href="javascript:toggleList('v9.10.0')">Release 9.10.0 [2024-02-20]</a></h3>
+<ul id="v9.10.0.list">
+ <li><a id="v9.10.0.api_changes" href="javascript:toggleList('v9.10.0.api_changes')">API Changes</a> (4)
+ <ol id="v9.10.0.api_changes.list">
+ <li><a href="https://github.com/apache/lucene/issues/12243">GITHUB#12243</a>: Mark TermInSetQuery ctors with varargs terms as @Deprecated. SortedSetDocValuesField#newSlowSetQuery,
+SortedDocValuesField#newSlowSetQuery, KeywordField#newSetQuery now take a collection of terms as a param.
+<br /><span class="attrib">(Jakub Slowinski)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/11041">GITHUB#11041</a>: Deprecate IndexSearch#search(Query, Collector) in favor of
+IndexSearcher#search(Query, CollectorManager) for TopFieldCollectorManager
+and TopScoreDocCollectorManager.
+<br /><span class="attrib">(Zach Chen, Adrien Grand, Michael McCandless, Greg Miller, Luca Cavanna)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12854">GITHUB#12854</a>: Mark DrillSideways#createDrillDownFacetsCollector as @Deprecated.
+<br /><span class="attrib">(Greg Miller)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12624">GITHUB#12624</a>, <a href="https://github.com/apache/lucene/issues/12831">GITHUB#12831</a>: Allow FSTCompiler to stream to any DataOutput while building, and
+make compile() only return the FSTMetadata. For on-heap (default) use case, please use
+FST.fromFSTReader(fstMetadata, fstCompiler.getFSTReader()) to create the FST.
+<br /><span class="attrib">(Anh Dung Bui)</span></li>
+ </ol>
+ </li>
+ <li><a id="v9.10.0.new_features" href="javascript:toggleList('v9.10.0.new_features')">New Features</a> (4)
+ <ol id="v9.10.0.new_features.list">
+ <li><a href="https://github.com/apache/lucene/issues/12679">GITHUB#12679</a>: Add support for similarity-based vector searches using [Byte|Float]VectorSimilarityQuery. Uses a new
+VectorSimilarityCollector to find all vectors scoring above a `resultSimilarity` while traversing the HNSW graph till
+better-scoring nodes are available, or the best candidate is below a score of `traversalSimilarity` in the lowest
+level.
+<br /><span class="attrib">(Aditya Prakash, Kaival Parikh)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12829">GITHUB#12829</a>: For indices newly created as of 9.10.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 accepts a parent field that is used
+to maintain block orders if index sorting is used. Note, this is fully optional in Lucene 9.x while will be mandatory for
+indices that use document blocks together with index sorting as of 10.0.0.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12336">GITHUB#12336</a>: Index additional data per facet label in the taxonomy.
+<br /><span class="attrib">(Shai Erera, Egor Potemkin, Mike McCandless,
+Stefan Vodita)</span></li>
+ <li><a href="https://github.com/apache/lucene/issues/12706">GITHUB#12706</a>: Add support for the final release of Java foreign memory API in Java 22 (and later).
+Lucene's MMapDirectory will now mmap Lucene indexes in chunks of 16 GiB (instead of 1 GiB) starting
+from Java 19. Indexes closed while queries are running can no longer crash the JVM.
+Support for vectorized implementations of VectorUtil based on jdk.incubator.vector APIs was added
+for exactly Java 22. Therefore, applications started with command line parameter
+"java --add-modules jdk.incubator.vector" will automatically use the new vectorized implementations
+if running on a supported platform (Java 20/21/22 on x86 CPUs with AVX2 or later or ARM NEON CPUs).
+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.
+<br /><span class="attrib">(Uwe Schindler, Chris Hegarty)</span></li>
[... 20196 lines stripped ...]