@@ -80,10 +80,6 @@ API Changes
80
80
* GITHUB#12875: Ensure token position is always increased in PathHierarchyTokenizer and ReversePathHierarchyTokenizer
81
81
and resulting tokens do not overlap. (Michael Froh, Lukáš Vlček)
82
82
83
- * GITHUB#12624, GITHUB#12831: Allow FSTCompiler to stream to any DataOutput while building, and
84
- make compile() only return the FSTMetadata. For on-heap (default) use case, please use
85
- FST.fromFSTReader(fstMetadata, fstCompiler.getFSTReader()) to create the FST. (Anh Dung Bui)
86
-
87
83
* GITHUB#13146, GITHUB#13148: Remove ByteBufferIndexInput and only use MemorySegment APIs
88
84
for MMapDirectory. (Uwe Schindler)
89
85
@@ -133,6 +129,11 @@ New Features
133
129
DocValuesSkipper abstraction. A new flag is added to FieldType.java that configures whether
134
130
to create a "skip index" for doc values. (Ignacio Vera)
135
131
132
+ * GITHUB#13563: Add levels to doc values skip index. (Ignacio Vera)
133
+
134
+ * GITHUB#13597: Align doc value skipper interval boundaries when an interval contains a constant
135
+ value. (Ignacio Vera)
136
+
136
137
Improvements
137
138
---------------------
138
139
@@ -256,11 +257,23 @@ API Changes
256
257
257
258
New Features
258
259
---------------------
259
- (No changes)
260
+
261
+ * GITHUB#13430: Allow configuring the search concurrency via
262
+ TieredMergePolicy#setTargetSearchConcurrency. This in-turn instructs the
263
+ merge policy to try to have at least this number of segments on the highest
264
+ tier. (Adrien Grand, Carlos Delgado)
265
+
266
+ * GITHUB#13517: Allow configuring the search concurrency on LogDocMergePolicy
267
+ and LogByteSizeMergePolicy via a new #setTargetConcurrency setter.
268
+ (Adrien Grand)
260
269
261
270
Improvements
262
271
---------------------
263
- (No changes)
272
+
273
+ * GITHUB#13548: Refactor and javadoc update for KNN vector writer classes. (Patrick Zhai)
274
+
275
+ * GITHUB#13562: Add Intervals.regexp and Intervals.range methods to produce IntervalsSource
276
+ for regexp and range queries. (Mayya Sharipova)
264
277
265
278
Optimizations
266
279
---------------------
@@ -279,14 +292,65 @@ Optimizations
279
292
280
293
* GITHUB#12941: Don't preserve auxiliary buffer contents in LSBRadixSorter if it grows. (Stefan Vodita)
281
294
295
+ * GITHUB#13175: Stop double-checking priority queue inserts in some FacetCount classes. (Jakub Slowinski)
296
+
297
+ * GITHUB#13538: Slightly reduce heap usage for HNSW and scalar quantized vector writers. (Ben Trent)
298
+
299
+ * GITHUB#12100: WordBreakSpellChecker.suggestWordBreaks now does a breadth first search, allowing it to return
300
+ better matches with fewer evaluations (hossman)
301
+
302
+ * GITHUB#13582: Stop requiring MaxScoreBulkScorer's outer window from having at
303
+ least INNER_WINDOW_SIZE docs. (Adrien Grand)
304
+
305
+ * GITHUB#13570, GITHUB#13574, GITHUB#13535: Avoid performance degradation with closing shared Arenas.
306
+ Closing many individual index files can potentially lead to a degradation in execution performance.
307
+ Index files are mmapped one-to-one with the JDK's foreign shared Arena. The JVM deoptimizes the top
308
+ few frames of all threads when closing a shared Arena (see JDK-8335480). We mitigate this situation
309
+ by 1) using a confined Arena where appropriate, and 2) grouping files from the same segment to a
310
+ single shared Arena. (Chris Hegarty, Michael Gibney, Uwe Schindler)
311
+
312
+ Changes in runtime behavior
313
+ ---------------------
314
+
315
+ * GITHUB#13472: When an executor is provided to the IndexSearcher constructor, the searcher now executes tasks on the
316
+ thread that invoked a search as well as its configured executor. Users should reduce the executor's thread-count by 1
317
+ to retain the previous level of parallelism. Moreover, it is now possible to start searches from the same executor
318
+ that is configured in the IndexSearcher without risk of deadlocking. A separate executor for starting searches is no
319
+ longer required. (Armin Braun)
320
+
282
321
Bug Fixes
283
322
---------------------
284
- (No changes)
323
+
324
+ * GITHUB#13384: Fix highlighter to use longer passages instead of shorter individual terms. (Zack Kendall)
325
+
326
+ * GITHUB#13463: Address bug in MultiLeafKnnCollector causing #minCompetitiveSimilarity to stay artificially low in
327
+ some corner cases. (Greg Miller)
328
+
329
+ * GITHUB#13553: Correct RamUsageEstimate for scalar quantized knn vector formats so that raw vectors are correctly
330
+ accounted for. (Ben Trent)
285
331
286
332
Other
287
333
--------------------
288
334
(No changes)
289
335
336
+ ======================== Lucene 9.11.1 =======================
337
+
338
+ Bug Fixes
339
+ ---------------------
340
+
341
+ * GITHUB#13498: Avoid performance regression by constructing lazily the PointTree in NumericComparator. (Ignacio Vera)
342
+
343
+ * GITHUB#13501, GITHUB#13478: Remove intra-merge parallelism for everything except HNSW graph merges. (Ben Trent)
344
+
345
+ * GITHUB#13498, GITHUB#13340: Allow adding a parent field to an index with no fields (Michael Sokolov)
346
+
347
+ * GITHUB#12431: Fix IndexOutOfBoundsException thrown in DefaultPassageFormatter
348
+ by unordered matches. (Stephane Campinas)
349
+
350
+ * GITHUB#13493: StringValueFacetCounts stops throwing NPE when faceting over an empty match-set. (Grebennikov Roman,
351
+ Stefan Vodita)
352
+
353
+
290
354
======================== Lucene 9.11.0 =======================
291
355
292
356
API Changes
@@ -494,13 +558,23 @@ API Changes
494
558
495
559
* GITHUB#12854: Mark DrillSideways#createDrillDownFacetsCollector as @Deprecated. (Greg Miller)
496
560
561
+ * GITHUB#12624, GITHUB#12831: Allow FSTCompiler to stream to any DataOutput while building, and
562
+ make compile() only return the FSTMetadata. For on-heap (default) use case, please use
563
+ FST.fromFSTReader(fstMetadata, fstCompiler.getFSTReader()) to create the FST. (Anh Dung Bui)
564
+
497
565
New Features
498
566
---------------------
499
567
* GITHUB#12679: Add support for similarity-based vector searches using [Byte|Float]VectorSimilarityQuery. Uses a new
500
568
VectorSimilarityCollector to find all vectors scoring above a `resultSimilarity` while traversing the HNSW graph till
501
569
better-scoring nodes are available, or the best candidate is below a score of `traversalSimilarity` in the lowest
502
570
level. (Aditya Prakash, Kaival Parikh)
503
571
572
+ * GITHUB#12829: For indices newly created as of 9.10.0 onwards, IndexWriter preserves document blocks indexed via
573
+ IndexWriter#addDocuments or IndexWriter#updateDocuments also when index sorting is configured. Document blocks are
574
+ maintained alongside their parent documents during sort and merge. IndexWriterConfig accepts a parent field that is used
575
+ to maintain block orders if index sorting is used. Note, this is fully optional in Lucene 9.x while will be mandatory for
576
+ indices that use document blocks together with index sorting as of 10.0.0. (Simon Willnauer)
577
+
504
578
* GITHUB#12336: Index additional data per facet label in the taxonomy. (Shai Erera, Egor Potemkin, Mike McCandless,
505
579
Stefan Vodita)
506
580
@@ -592,7 +666,6 @@ Build
592
666
593
667
Other
594
668
---------------------
595
-
596
669
* GITHUB#11023: Removing some dead code in CheckIndex. (Jakub Slowinski)
597
670
598
671
* GITHUB#11023: Removing @lucene.experimental tags in testXXX methods in CheckIndex. (Jakub Slowinski)
0 commit comments