Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
753 commits
Select commit Hold shift + click to select a range
20cb872
Decrease TieredMergePolicy's default number of segments per tier to 8…
jpountz Jun 30, 2025
8d2f363
Fix TestIndexOrDocValuesQuery test failure.
jpountz Jun 30, 2025
99b8685
NPE exception could occur in Luke on Windows when using network share…
dweiss Jul 3, 2025
b7fccaf
Ignore the top-level build-options.local.properties (main branch buil…
dweiss Jul 3, 2025
5687ed5
Pre-calculate minRequiredScore to speedup filterCompetitiveHits (#14827)
HUSTERGS Jul 3, 2025
9c16892
Backport #14797 to 10.x (#14895)
thecoop Jul 3, 2025
678b54f
Fix test failures.
jpountz Jul 3, 2025
d0a4b10
Improve test and address more test failures.
jpountz Jul 3, 2025
a156c80
build: fix malformed HTML generated by changes2html (#14904)
rmuir Jul 7, 2025
db11ae7
Use branchless way to speedup filterCompetitiveHits (#14906)
HUSTERGS Jul 7, 2025
b77259c
Fix typo in Circle2D.java (#14898)
nehemiaharchives Jul 7, 2025
2a5ae4b
Deprecate MergeSpecification#segString(Directory) (#14908)
kitoha Jul 8, 2025
7de24ce
Support for Re-Ranking Queries using Late Interaction Model Multi-Vec…
vigyasharma Jul 8, 2025
d7f92bc
Backport Faiss-based vector format to 10.x (#14843)
kaivalnp Jul 9, 2025
e610d0e
Revert now, to iterate PR to incorporate Uwe's feedback
mikemccand Jul 9, 2025
70a8980
assertDocValuesEquals should support sparse sorted doc_values (#14839)
parkertimmins Jul 9, 2025
50a4a2c
Fix TestLateInteractionField.testInputValidation (#14929)
HUSTERGS Jul 10, 2025
78a52b9
Optimize bitset to array (#14935)
gf2121 Jul 13, 2025
529dd0a
Updating Dense#intoBitSet to properly set upTo if it exceeds bitset …
pmpailis Jul 16, 2025
7aa0fa7
Address test failure #14948 TestLateInteractionRescorer.testBasic (#1…
benwtrent Jul 16, 2025
e32b39f
Knn dont filter match all (#14936)
benwtrent Jul 16, 2025
5e71196
Vectorize `filterCompetitiveHits` (#14896)
HUSTERGS Jul 17, 2025
61424c4
OptimisticKnnVectorQuery (#14226)
msokolov May 5, 2025
5ab284a
CHANGES entry for #14226 (optimistic KNN Query)
May 5, 2025
6643f7e
Don't perform additional KNN querying after timeout, fixes #14639
May 10, 2025
7ac27d1
Use per-segment K in filtered KNN fallback logic (fixes 14671) (#14680)
msokolov May 16, 2025
8840564
Utilize `docIdRunEnd` on `ReqExclBulkScorer` (#14806)
HUSTERGS Jul 18, 2025
047009d
Revert "Utilize `docIdRunEnd` on `ReqExclBulkScorer` (#14806)"
dweiss Jul 21, 2025
7dd51f8
Utilize docIDRunEnd on ReqExclBulkScorer (#14976)
HUSTERGS Jul 22, 2025
b960806
Simplify ForDeltaUtil's prefix sum. (#14979)
jpountz Jul 23, 2025
65638ae
Further improve filtering by score. (#14970)
jpountz Jul 24, 2025
0117443
Revert "Further improve filtering by score. (#14970)"
jpountz Jul 28, 2025
3e42687
Refactor for loop at PointRangeQuery hot path (#14991)
HUSTERGS Jul 25, 2025
54002a4
Backport change to improve off-heap byte vector scoring at query time…
kaivalnp Jul 30, 2025
a48cd20
Add ParentBlockJoinKnnVectorQueryTestCase.testRandom
Jul 30, 2025
7a97c63
Don't revisit knn query results unless optimistic collection was used…
Jul 31, 2025
6a21a06
flush segments in addIndexes, not in addIndexesReaderMerge; fixes #14…
msokolov Aug 2, 2025
46f3521
10.x: Remove full integrity check from SortingStoredFieldsConsumer (#…
martijnvg Aug 4, 2025
5f72fb0
Only score doc first when minCompetitiveScore is zero (#14856)
gf2121 Aug 4, 2025
7a9a6b9
Add TestUtil.normalizeToUnitInterval (#15036)
ChrisHegarty Aug 6, 2025
cac1a31
Add a bulk scoring interface to RandomVectorScorer (#14978)
mccullocht Jul 31, 2025
20a8686
Add some basic tests and infra to allow to write small sanity tests f…
ChrisHegarty Aug 7, 2025
a0de437
GroupVarInt Encoding Implementation for HNSW Graphs (#14932)
aylonsk Aug 6, 2025
3a78da1
Add bulk off-heap scoring for float32 vectors (#14980)
ChrisHegarty Aug 7, 2025
9b68082
Fix preview and forbidden API usage in benchmark
ChrisHegarty Aug 7, 2025
79a9dda
MultiIndexMergeScheduler: a production multi-tenant merge scheduler (…
corecursion Aug 8, 2025
fafcb9b
Change default ReadAdvice from RANDOM to NORMAL (#15040)
ChrisHegarty Aug 8, 2025
52f1891
Removing unused parameter in MemorySegmentIndexInput (#15033)
jainankitk Aug 11, 2025
20a189f
Fixing build failure due to unnamed variable (#15047)
jainankitk Aug 12, 2025
6f1a939
Wraps all iterator with likelyImpactsEnum under BlockMaxConjunctionBu…
HUSTERGS Aug 12, 2025
5bf1bf9
Revert unneccessary cms change (#15061)
benwtrent Aug 13, 2025
d601aa5
Rework off-heap float32 bulk scoring to reduce garbage creation (#15062)
ChrisHegarty Aug 13, 2025
37db8b0
Reduce memory needed for multi-vector tests (#15066)
vigyasharma Aug 13, 2025
2df0351
Add remaining bulk float32 off-heap scoring similarities (#15037)
ChrisHegarty Aug 14, 2025
3000281
Minor tweaks to VectorScorerFloat32Benchmark
ChrisHegarty Aug 14, 2025
9135700
Reapply "Update the IOContext rather than the ReadAdvice on IndexInpu…
msokolov Aug 14, 2025
3a99fae
Use switch expression for optimized type checks in PointRangeQueryBui…
sandeshkr419 Aug 14, 2025
82b8ad1
Use READONCE to read segment infos (#15074)
ChrisHegarty Aug 15, 2025
4e6f855
Remove merge instance assertions from AssertingKnnVectorsFormat (#15044)
thecoop Aug 11, 2025
c7dc028
Reduce the default RefCountedSharedArena.DEFAULT_MAX_PERMITS to 64 (f…
ChrisHegarty Aug 17, 2025
a35c59a
Remove more merge instance asserts from AssertingKnnVectorsFormat (#1…
thecoop Aug 12, 2025
c6fd249
Use DocValuesSkipper for count() in SortedNumericDocValuesRangeQuery …
romseygeek Aug 18, 2025
89bd9f0
DisjunctionQuery sub-clause iteration should be stable (#14885)
kotman12 Aug 18, 2025
efb4df5
Fix static analysis check (#15087)
kotman12 Aug 18, 2025
37aa3ee
Rewrite SortedNumericDocValuesRangeQuery using DocValuesSkippers (#15…
romseygeek Aug 19, 2025
336b869
Hunspell suggestions: Cherry-pick latest changes from `main` to `bran…
p3rmiashkin Aug 19, 2025
57ae79a
Improve set deletions percentage javadoc (#12828)
yugushihuang Jan 22, 2025
3ab1f03
Decrease minimum deletes percentage in TMP (#14893)
stefanvodita Aug 19, 2025
fe305e7
Fix TestMultiIndexMergeScheduler test decrementing before 0 and falli…
dweiss Aug 20, 2025
8f2464d
Revert "Fixing build failure due to unnamed variable (#15047)"
uschindler Aug 20, 2025
9eaf64a
Fix the remaining missing SuppressWarnings("preview") to silence IDEs…
uschindler Aug 20, 2025
1ff9537
IndexWriter InfoStream improvements: log elapsed seconds waiting for …
mikemccand Aug 21, 2025
a71a3e2
Fix GroupVIntBenchmark and some tests to actually use DataInput#readG…
jpountz Aug 22, 2025
a253a24
Add AcceptDocs abstraction for accepted KNN docs (#15011)
shubhamvishu Aug 24, 2025
9249ab7
Fix assertion in testSearchWithVisitedLimit (#15075)
shubhamvishu Aug 14, 2025
df64116
Add comment on BooleanScorerSupplier#opt. (#15111)
vsop-479 Aug 24, 2025
ee677ce
Fix infinite loop when RefCountedSharedArena's underlying Arena#close…
uschindler Aug 25, 2025
586dc10
Add optimistic collection to DiversifyingNearestChildren* vector quer…
benwtrent Aug 25, 2025
7982423
Tessellator should fail if it cannot process a hole (#14974)
iverase Aug 26, 2025
e8b8010
Add estimatedByteSizes to merges kicked off by IndexWriter.addIndexes…
dweiss Aug 27, 2025
7f7cc17
Tidy.
dweiss Aug 27, 2025
97740fc
Use FixedBitSet#cardinality for counting liveDocs in CheckIndex (#15045)
easyice Aug 27, 2025
9154e03
Early exit while computing globalMin/Max using skipper (#15127)
jainankitk Aug 27, 2025
712e47b
Adding profiling support for concurrent segment search (#14413)
jainankitk Aug 27, 2025
fa70614
Reusing count() for minor refactor in SortedNumericDocValuesRangeQuer…
jainankitk Aug 27, 2025
de66961
PostingsDecodingUtil: interchange loops to enable better memory acces…
RamakrishnaChilaka Aug 28, 2025
6245611
Backport of #15116: Rewrite of the GroupVInt optimization without lam…
uschindler Aug 29, 2025
d664abb
Fix @jpountz review comment after merge
uschindler Aug 29, 2025
56aa606
Refactor for loop at PointRangeQuery hot path (#14991)
HUSTERGS Jul 25, 2025
be83253
Better vectorize score computations. (#15039)
jpountz Aug 18, 2025
917e489
feat: implement asBulkSimScorer on FeatureFields's SimScorers (#15137)
AdityaTeltia Aug 30, 2025
878a3db
remove duplicate CHANGES entry
jpountz Aug 30, 2025
28bd476
Add next minor version 10.4.0
vigyasharma Sep 2, 2025
69e9ac6
Adding 3-ary LongHeap to speed up collectors like TopDoc*Collectors (…
RamakrishnaChilaka Sep 2, 2025
3901769
Remove unused parameter in TopFieldCollecter.countHit() (#15150)
gaobinlong Sep 3, 2025
61b32ff
[BlockJoin] Add ParentsChildrenBlockJoinQuery (#14728)
Jinny-Wang Jun 13, 2025
2d5f351
Correct test TestParentsChildrenBlockJoinQuery.testExplain (#15042)
benwtrent Aug 8, 2025
9d2c560
Added toString() method to BytesRefBuilder (#14676)
shubhamsrkdev May 19, 2025
8f2f9f3
Fix build
msfroh Sep 4, 2025
c906cbd
Update assert in kNN query timeout test (#15153)
thecoop Sep 5, 2025
af1883a
Add bulk-retrieval API to NumericDocValues. (#15149)
jpountz Sep 5, 2025
ece138c
Speed up flushing of live docs. (#14998)
jpountz Sep 5, 2025
33450de
[10x] Support JDK 25 in Panama Vectorization Provider (#15158)
ChrisHegarty Sep 5, 2025
66353c5
Add support for uint8 distance comparison (#15148)
mccullocht Sep 5, 2025
dce8f71
Optimize a bit two more prefix sums. (#15156)
jpountz Sep 7, 2025
14d6f56
Simplify MaxScoreBulkScorer. (#15141)
jpountz Sep 8, 2025
c1828cd
Use the bulk SimScorer#score API to compute impact scores. (#15151)
jpountz Sep 8, 2025
64571d1
Optimize PForUtil.encode() with histogram-based bit selection (#15165)
RamakrishnaChilaka Sep 9, 2025
66d7ed8
integrate into new bulk scorers (#15021)
mccullocht Sep 10, 2025
351c42c
Bump block size of postings to 256. (#15160)
jpountz Sep 10, 2025
05594fc
Use TernaryLongHeap in NeighborQueue for better HNSW performance (#15…
RamakrishnaChilaka Sep 10, 2025
290b048
Add bulk scoring option to VectorScorer interface (#15171)
benwtrent Sep 10, 2025
621b86a
optimise prefix sums in Lucene104PostingsReader (#15175)
RamakrishnaChilaka Sep 10, 2025
815b1ce
Help collectors take advantage of bulk-retrieval of doc values. (#15173)
jpountz Sep 12, 2025
6473972
Adds new simplified rescorer API to [Float|Byte]VectorValues (#15176)
benwtrent Sep 12, 2025
0469169
Fixing CHANGES for #15171 and #15176
benwtrent Sep 12, 2025
f063435
fix off by one (#15183)
mccullocht Sep 12, 2025
c9b96d4
DOAP changes for release 10.3.0
vigyasharma Sep 13, 2025
b437fff
Add back-compat indices for 10.3.0
vigyasharma Sep 14, 2025
c925e9b
Implement off-heap quantized scoring (#14863)
kaivalnp Sep 16, 2025
07033dc
Add a new codec to implement OSQ for 4 and 8 bit quantized vectors (#…
mccullocht Sep 17, 2025
3225fb1
Fix build issues introduced in backport 07033dcd84ccbbcf13bc3a81a6430…
mccullocht Sep 18, 2025
b846e56
Refactoring HNSWGraphBuilder's API and adding more comments about con…
zhaih Sep 18, 2025
8af2857
[Tessellator] Fix failure due to hole bridge being coplanar with poly…
iverase Sep 23, 2025
e5f58ad
Don't normalize centroids with zero samples. Fixes #15209 (#15213)
msokolov Sep 22, 2025
2c29db0
undo spurious changelog entry
Sep 23, 2025
300253a
Revert "undo spurious changelog entry" LOL
Sep 23, 2025
3c12f58
Refactor FirstPassGroupingCollector to improve readability. (#15136) …
alexmm-amzn Sep 19, 2025
5719c17
Disabling point range collector if doc values not indexed (#14559)
jainankitk Sep 23, 2025
11de105
Specify deltas when checking float values for corrections in Lucene10…
thecoop Sep 24, 2025
6f3961a
Move legacy scalar formats to backwards_codecs (#15223)
benwtrent Sep 24, 2025
a06170c
Remove unused method which does unsafe XML parsing (#15234)
uschindler Sep 26, 2025
6c9c2df
Fix SmartChinese to only deserialize data from classpath with a nativ…
uschindler Sep 27, 2025
daf2a04
Add permission changes to changes entry (#15237)
uschindler Sep 27, 2025
bad7a4e
DOAP changes for release 9.12.3
jainankitk Sep 28, 2025
e0692ae
Add bugfix version 9.12.3
jainankitk Sep 28, 2025
56a8580
Add back-compat indices for 9.12.3
jainankitk Sep 28, 2025
9d2a057
Clarify error message in BackwardsCompatibilityTestBase and fix resou…
uschindler Sep 29, 2025
a6828ed
Fix backcompat tests. (#15255)
dweiss Sep 29, 2025
372d27f
Backport: Upgrade forbiddenapis to 3.10
uschindler Oct 4, 2025
6d9b2d9
DOAP changes for release 10.3.1
benwtrent Oct 6, 2025
898d38a
FirstPassGroupingCollector supports ignoring docs without group field…
gaobinlong Oct 6, 2025
3504221
Add bugfix version 10.3.1
benwtrent Oct 6, 2025
65d68a1
Add back-compat indices for 10.3.1
benwtrent Oct 6, 2025
8274500
Use appropriate return type for byte vector specific cosineBody* func…
kaivalnp Oct 7, 2025
fa79191
Prevent zero radius in BaseXYPointTestCase (#15315)
iverase Oct 9, 2025
9393df6
Avoid static dependency from TermsEnum to one of its subclasses (#15319)
ChrisHegarty Oct 10, 2025
d082619
Use BulkSimScorer on MultiNormsLeafSimScorer (#15101)
HUSTERGS Aug 22, 2025
0c75565
Implement `longValues` for `MultiFieldNormValues` to speedup Combined…
HUSTERGS Oct 10, 2025
c3f0865
Fix test failure in TestSoftDeletesDirectoryReaderWrapper on expected…
cwperks Dec 18, 2024
adbcbe8
Applied lucene.bug.VectorSimilarityFunction.doubleVal.patch.txt (#15…
dweiss Oct 12, 2025
cf86cb0
Manually sync up changes.txt with main.
dweiss Oct 12, 2025
b28e2b1
Add PhraseQuery.Builder.setMaxTerms() method to limit the maximum num…
linyunanit Oct 13, 2025
a8c1455
Fix potential NPE for KnnVectorQuery (#15334)
benwtrent Oct 14, 2025
3eea6aa
Use cached cardinality for AcceptDocs cost (#15343)
benwtrent Oct 21, 2025
8cc36b0
Make some ScalarQuantizedVectorsReader classes public (#15351)
thecoop Oct 22, 2025
9b957e8
Bypass HNSW graph building for tiny segments (#14963)
shubhamvishu Oct 22, 2025
cb5ab36
Merge branch 'branch_10x' of github.com:apache/lucene into branch_10x
benwtrent Oct 22, 2025
6f42ab3
Moves the 102 legacy binary formats to backwards codecs (#15353)
benwtrent Oct 27, 2025
4633b88
Add checkDimension check to Lucene104ScalarQuantizedVectorScorer#getR…
shubhamvishu Oct 29, 2025
3105b2f
Tidy up Lucene104ScalarQuantizedVectorsWriter (#15357)
thecoop Oct 30, 2025
90a5ffa
Utilize iterator and not approximation in MaxScoreBulkScorer (#15380)
benwtrent Oct 30, 2025
6862ef9
Return MergeObserver from IndexWriter.forceMergeDeletes() (#15378)
salvatorecampagna Nov 2, 2025
74d3f12
Extend Lucene104ScalarQuantization format to support quant asymmetry …
benwtrent Oct 2, 2025
68fa489
[backport] NumericComparator: immediately check whether a segment is …
martijnvg Nov 6, 2025
6a31e71
Put sensible bounds on quantized scores (#15411)
mccullocht Nov 7, 2025
eb01732
Add fallback support to Lucene104ScalarQuantizedVectorsFormat getFloa…
Pulkitg64 Nov 13, 2025
fa60856
Adjusting PR #15415 for backport
benwtrent Nov 13, 2025
3340a54
Fix silly inefficiencies in HnswGraph.NodesIterator implementation (#…
msokolov Nov 13, 2025
093d4a6
Speed up NumericUtils#{subtract,add} (#15303)
kaivalnp Nov 13, 2025
f8373d6
DOAP changes for release 10.3.2
thecoop Nov 17, 2025
d651ec9
Add bugfix version 10.3.2
thecoop Nov 17, 2025
fad565f
Add back-compat indices for 10.3.2
thecoop Nov 17, 2025
ce4fe96
Fix flaky TestParentsChildrenBlockJoinQuery (#15435)
msfroh Nov 19, 2025
8ef779d
Add method in DirectWriter to compute how many bytes are written for …
iverase Nov 20, 2025
7f4f92a
Make MergingHnswGraphBuilder stable; fixes #15438
Nov 19, 2025
c5a4d07
Adding support for passing an ExecutorService into DirectoryReader.op…
BryceKan3 Nov 23, 2025
bec61ca
Implement sparse LiveDocs to reduce memory by up to 8x (#15413)
salvatorecampagna Nov 25, 2025
fe59fde
Backport #14607 to branch_10x (Index open performs version check on e…
rahulgoswami Nov 25, 2025
268778f
TestVectorUtilSupport increase delta for larger vector sizes (#15443)
tteofili Nov 29, 2025
3e02447
Avoid reconstructing HNSW graphs during segment merging. (#15003)
Pulkitg64 Dec 1, 2025
8817c23
Improve round trip conversion of ValueSource <-> DoublesValueSource (…
hossman Dec 2, 2025
4b1669f
Enabling wrapped collectors in MultiCollector to collectRange (#15475)
jainankitk Dec 5, 2025
d4c04a7
Skip heavy TreeSet opts for the first group in FirstPassGroupingColle…
gaobinlong Dec 8, 2025
e91d5d6
Make field, type and reverse fields on SortField immutable (#15481)
romseygeek Dec 8, 2025
deb3c5a
Speed up TestNumericComparator (#15484)
romseygeek Dec 8, 2025
6f28f67
Add a public NumericDocValuesRangeQuery class (#15479)
romseygeek Dec 8, 2025
202f206
Deprecate SortField.setMissingValue() (#15483)
romseygeek Dec 8, 2025
dde0a8d
Fix testGraphMergeWithDeletes test case to have atleast one vector (#…
Pulkitg64 Dec 8, 2025
0109331
Use bulk scoring new osq (#15474)
benwtrent Dec 8, 2025
2e1e50a
Add `@SuppressAssertingFormats` annotation for fine-grained control o…
prudhvigodithi Dec 9, 2025
ba8a0db
Revert "Add `@SuppressAssertingFormats` annotation for fine-grained c…
dweiss Dec 9, 2025
50818b9
Remove unused bytesComparator field from SortField (#15488)
romseygeek Dec 9, 2025
d2c186a
Correctly read missingValue from index sort metadata
romseygeek Dec 9, 2025
4679663
Check node existence before making reverse link in HNSW graph indexin…
Pulkitg64 Dec 8, 2025
25c4baf
Support `@SuppressAssertingFormats` (#15490)
prudhvigodithi Dec 10, 2025
643b4f4
Backport to pre-java25 #15490
dweiss Dec 10, 2025
ac9c270
Use shallowSizeOfInstance instead of shallowSizeOf (#15048)
gf2121 Dec 10, 2025
2fc6cec
Corrects the VectorScorer.Bulk interface to be iterator friendly (#15…
benwtrent Dec 11, 2025
3546354
MatchAllDocs and MatchNoDocs should be singletons (#15499)
dweiss Dec 11, 2025
b9d02e1
Introduce optional access to backing vector values from the scorer (#…
ChrisHegarty Dec 13, 2025
3c2a0f4
Use vector bulk scoring in entry-point and filter hnsw search (#15500)
benwtrent Dec 15, 2025
bedcf3b
ExitableDirectoryReader should not cover-up singletons (#15498)
HoustonPutman Dec 17, 2025
555226f
Correct documentation in DefaultBloomFilterFactory to reflect changes…
gsmiller Dec 20, 2025
3283e21
Fix map size in CustomAnalyzer#paramsToMap. (#14770)
vsop-479 Dec 23, 2025
bf72c21
Use HashMap#newHashMap and HashSet#newHashSet instead of CollectionUt…
vsop-479 Dec 25, 2025
eaa9e03
Refactor DocValuesSkipper stat methods to accept IndexReader instead …
bugmakerrrrrr Dec 26, 2025
17c35a6
Dynamic pruning for SORTED(_SET) fields with doc values skipper (#15511)
bugmakerrrrrr Dec 26, 2025
c973454
Updating createMultiSegmentIndex to utilize an explicit NoMergePolicy…
BryceKan3 Dec 28, 2025
6829235
Align float vectors on disk for optimal performance on ARM CPUs (#15341)
kaivalnp Jan 8, 2026
317cee3
Deprecate some public FuzzySet methods ahead of removing them in a fu…
gsmiller Jan 9, 2026
1fdcbae
Expose MergeRateLimiter in runOnMergeFinished hook (#15507)
zihanx Jan 9, 2026
84d913a
Fix FuzzySet#createSetBasedOnMaxMemory to honor bytes not bits (#14616)
gsmiller Jan 9, 2026
327c517
Add post-collection facets support to the new faceting API (#15518)
epotyom Jan 12, 2026
6eeab11
test: mark horribly slow tests with @Nightly (#15563)
romseygeek Jan 12, 2026
73950fa
Sync github workflow changes with the main branch (#15566)
dweiss Jan 13, 2026
ece5b21
Two bit quantization for dense vectors (#15564)
benwtrent Jan 14, 2026
ca0a78a
Disallow invalid offset 0 for LZ4 decompression (#15570)
Marcono1234 Jan 15, 2026
a2772fe
Allow a DataAccessHint to be passed during the construction of a Luce…
ChrisHegarty Jan 16, 2026
9f0ddba
Minor javadoc clarification that HasIndexSlice::getSlice can return n…
ChrisHegarty Jan 16, 2026
4019ff1
Fix dibit striping for quantized vector formats (#15578)
benwtrent Jan 15, 2026
62231ea
Add `count()` to `FilterWeight` (#15510)
prudhvigodithi Jan 19, 2026
15d8252
Avoid copying bitset that's subsequently cleared (#15582)
viliam-durina Jan 16, 2026
fc07a02
Monitor: Make TestCachePurging more failsafe (#15589)
spinscale Jan 20, 2026
e7764be
Use Arrays.compareUnsigned in IDVersionSegmentTermsEnum and OrdsSegm…
vsop-479 Jan 22, 2026
1a11383
TestRescoreTopNQuery: Don't flush per document (#15600)
spinscale Jan 22, 2026
7b71560
Add SegmentOrder utility class for per-query segment re-ordering (#15…
romseygeek Jan 23, 2026
80f8e8f
SegmentTermsEnumFrame: avoid unnecessary array allocations that waste…
countmdm Jan 27, 2026
1f3bf03
Clones of MMapDirectory's IndexInput (MemorySegmentIndexInput) now sh…
shubhamsrkdev Jan 27, 2026
e0e6e91
Backport changes to 10x branch to add and enforce fallback support wh…
Pulkitg64 Jan 27, 2026
fab6267
Bring new quantized format inline with old quantized format (#15622)
benwtrent Jan 28, 2026
0bf85ad
Use a more coarse-grained competitive iterator for skipper-based nume…
romseygeek Feb 2, 2026
39969e5
Bulk score hnsw diversity check (#15607)
benwtrent Feb 2, 2026
e59cb5b
Fix tessellator failure by preferring the shared vertex that is the l…
iverase Feb 2, 2026
b095a83
Update documentation for Lucene104PostingsFormat (#15625)
Lyon-NEU Jan 28, 2026
fee7549
Fix FVH boost issue (#15442) (#15635)
yangfeng123456 Feb 4, 2026
62c9777
Fix MergedByteVectorValues internal ordinal tracking (#15553)
finnroblin Feb 3, 2026
c9cc76a
Avoid unnecessary getGraph() call (#15560)
shubhamvishu Jan 12, 2026
8ec69b0
Optimize DocIdSetIteratorAcceptDocs#cost (#15592)
shubhamvishu Jan 22, 2026
2fcb6e5
Disable bypassing graph creation for HnswGraphTestCase#testReadWrite …
shubhamvishu Dec 1, 2025
b46b0fa
Revert "Optimize DocIdSetIteratorAcceptDocs#cost (#15592)" (#15687)
benwtrent Feb 9, 2026
dd9c8b2
Use SkipBlockRangeIterator in TermOrdValComparator (#15696)
romseygeek Feb 12, 2026
8073c18
Fix Tessellation error for holes that share the same leftmost vertex …
roblburris Feb 17, 2026
a6d8dbb
Disable skipper-based term competitive iterators if they are not effe…
romseygeek Feb 17, 2026
9983b7c
Correctly handle sort pruning on segments where the sort field does n…
romseygeek Feb 20, 2026
074a018
[mongot setup] Add .evergreen.yml and scripts/release/ for Evergreen CI
txwei May 18, 2026
710399b
Restore Lucene99Codec and Lucene99HnswScalarQuantizedVectorsFormat wr…
txwei Jun 22, 2026
d4d9c70
Bloom filter support backport to 10.4.0 (#14)
txwei Jun 22, 2026
d3adc2a
CLOUDP-415919 - Backports WANDScorer and leading wildcard query fixes…
txwei Jun 22, 2026
4a30dfb
restore
txwei Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
347 changes: 347 additions & 0 deletions .evergreen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,347 @@
# 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.

# Don't run CI if only docs changed.
ignore:
- "*.md"

parameters:
- key: release_version
description: "Maven version in N.N.N-N format (e.g. 10.3.2-1). Do not use dots for the patch segment — Lucene's version parser assumes three numeric components."
- key: release_modules
description: Comma-separated modules to publish (e.g. lucene-core,lucene-analysis-common,lucene-facet)

variables:
- &fetch_source
command: git.get_project
params:
directory: src

# Detects the required JDK from the Lucene source tree, then downloads it
# from the Adoptium API. Lucene 9.x/10.x need JDK 21; 11.x+ declares its
# minimum in gradle/libs.versions.toml (minJava).
- &setup_jdk
command: shell.exec
type: setup
params:
working_dir: src
shell: bash
script: |
set -euo pipefail

if [ -f build-options.properties ]; then
LUCENE_MAJOR=$(sed -n 's/^version\.base=\([0-9]*\).*/\1/p' build-options.properties)
else
LUCENE_MAJOR=$(sed -n "s/.*baseVersion *= *'\([0-9]*\).*/\1/p" build.gradle)
fi

if [ -z "$LUCENE_MAJOR" ]; then
echo "ERROR: could not detect Lucene major version from source tree"
exit 1
fi

echo "$LUCENE_MAJOR" > "${workdir}/.lucene-major"

JDK_MAJOR=21
if [ -f gradle/libs.versions.toml ]; then
maybe=$(sed -n 's/^minJava *= *"\([0-9]*\)".*/\1/p' gradle/libs.versions.toml)
[ -n "$maybe" ] && JDK_MAJOR="$maybe"
fi

echo "Lucene $LUCENE_MAJOR.x -> JDK $JDK_MAJOR"

ARCH=$(uname -m | sed 's/x86_64/x64/;s/arm64/aarch64/')
JDK_URL="https://api.adoptium.net/v3/binary/latest/$JDK_MAJOR/ga/linux/$ARCH/jdk/hotspot/normal/eclipse?project=jdk"
curl -fsSL -L -o /tmp/jdk.tar.gz "$JDK_URL"
mkdir -p ${workdir}/java
tar -xzf /tmp/jdk.tar.gz -C ${workdir}/java --strip-components=1

functions:
setup:
- *fetch_source
- *setup_jdk

# Runs all validation checks without tests.
# This is equivalent to the [Run gradle check (without tests)](https://github.com/apache/lucene/blob/main/.github/workflows/run-checks-all.yml#L93-L94) Github Actions workflow from Lucene upstream.
# TODO (tianxiao): consider adding the validation tools (eclint, ast-grep) that Gradle check optionally uses.
run-checks:
- command: subprocess.exec
params:
working_dir: src
binary: bash
env:
JAVA_HOME: ${workdir}/java
args:
- "-c"
- |
export PATH="$JAVA_HOME/bin:$PATH"
./gradlew check -x test "-Ptask.times=true"

# Runs all tests without any other validation checks.
# This is equivalent to the [Run gradle tests](https://github.com/apache/lucene/blob/main/.github/workflows/run-checks-all.yml#L139-L144) Github Actions workflow from Lucene upstream.
run-tests:
- command: subprocess.exec
params:
working_dir: src
binary: bash
env:
JAVA_HOME: ${workdir}/java
TEST_JVM_ARGS: "-XX:TieredStopAtLevel=1 -XX:+UseParallelGC -XX:ActiveProcessorCount=1"
args:
- "-c"
- |
set -euo pipefail
export PATH="$JAVA_HOME/bin:$PATH"

LUCENE_MAJOR=$(cat "${workdir}/.lucene-major")

EXTRA_TASKS=""
if [ "${LUCENE_MAJOR:-0}" -ge 11 ] 2>/dev/null; then
EXTRA_TASKS="displayGradleDiagnostics allOptions"
fi

./gradlew $EXTRA_TASKS test \
"-Ptask.times=true" \
"-Pvalidation.errorprone=false"

attach-test-results:
- command: attach.xunit_results
params:
file: src/lucene/**/build/test-results/test/TEST-*.xml

# Extracts the release version and modules from the git tag.
# Only used by publish-cdn, which is triggered by pushing a tag
# matching releases/mongot/<version>.
set-release-expansions-from-tag:
- command: shell.exec
params:
working_dir: src
shell: bash
script: |
set -euo pipefail
TAG="${triggered_by_git_tag}"
if [ -z "$TAG" ]; then
echo "ERROR: publish-cdn requires a git tag trigger (releases/mongot/<version>)"
exit 1
fi
VERSION=$(echo "$TAG" | sed 's|^releases/mongot/||')
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+-[0-9]+$ ]]; then
echo "ERROR: version from tag must be in N.N.N-N format (got: $VERSION)"
exit 1
fi
MODULES=$(grep -v '^\s*#' scripts/release/modules.conf | grep -v '^\s*$' | tr '\n' ',' | sed 's/,$//')
if [ -z "$MODULES" ]; then
echo "ERROR: no modules found in scripts/release/modules.conf"
exit 1
fi
IFS=',' read -ra mod_array <<< "$MODULES"
for mod in "${mod_array[@]}"; do
if [ -n "$mod" ] && [[ "$mod" != lucene-* ]]; then
echo "ERROR: module '$mod' in modules.conf must start with 'lucene-'"
exit 1
fi
done
echo "release_version: $VERSION" > ${workdir}/tag_expansions.yml
echo "release_modules: $MODULES" >> ${workdir}/tag_expansions.yml
echo "Tag trigger — version: $VERSION, modules: $MODULES"
cat ${workdir}/tag_expansions.yml
- command: expansions.update
params:
file: ${workdir}/tag_expansions.yml

# Appends the Evergreen version_id to the supplied release_version so that
# every dev build produces a unique Maven version (e.g. 9.11.0-1-abc123def).
set-dev-release-version:
- command: shell.exec
params:
shell: bash
script: |
set -euo pipefail
# Capture Evergreen expansions into shell variables first — bash
# default-value syntax (:-) conflicts with Evergreen's ${} engine.
RELEASE_VERSION="${release_version}"
if [ -z "$RELEASE_VERSION" ]; then
echo "ERROR: release_version parameter is not set. Pass it via --param release_version=N.N.N-N"
exit 1
fi
VERSION="$RELEASE_VERSION-${version_id}"
echo "release_version: $VERSION" > ${workdir}/dev_expansions.yml
echo "Dev build — version: $VERSION"
cat ${workdir}/dev_expansions.yml
- command: expansions.update
params:
file: ${workdir}/dev_expansions.yml

build-artifacts:
- command: subprocess.exec
params:
working_dir: src
binary: bash
env:
JAVA_HOME: ${workdir}/java
RELEASE_VERSION: ${release_version}
RELEASE_MODULES: ${release_modules}
MAVEN_STAGING_DIR: ${workdir}/maven-staging
args:
- scripts/release/build_artifacts.sh

sign-artifacts:
- command: ec2.assume_role
display_name: Assume IAM role for ECR (garasign-gpg)
params:
role_arn: ${release_infra_ecr_ro_arn}
- command: shell.exec
display_name: Login to ECR and prepare signing envfile
params:
shell: bash
silent: true
include_expansions_in_env: [ AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN ]
script: |
set -euo pipefail
aws ecr get-login-password --region us-east-1 \
| docker login --username AWS --password-stdin \
901841024863.dkr.ecr.us-east-1.amazonaws.com
echo "GRS_CONFIG_USER1_USERNAME=${garasign_username}" >> ${workdir}/signing-envfile
echo "GRS_CONFIG_USER1_PASSWORD=${garasign_password}" >> ${workdir}/signing-envfile
- command: shell.exec
display_name: Sign artifacts with Garasign GPG
params:
shell: bash
script: |
set -euo pipefail
trap 'echo "Cleaning up signing credentials..."; rm -f ${workdir}/signing-envfile' EXIT
cd ${workdir}/maven-staging

echo "Files to sign:"
find . -type f \( -name '*.jar' -o -name '*.pom' -o -name '*.module' \) | sort
echo ""

STAGING="$(pwd)"
docker run \
--env-file "${workdir}/signing-envfile" \
--rm \
-v "${STAGING}:${STAGING}" \
-w "${STAGING}" \
901841024863.dkr.ecr.us-east-1.amazonaws.com/release-infrastructure/garasign-gpg \
/bin/bash -c "gpgloader && \
for f in \$(find '${STAGING}' -type f \( -name '*.jar' -o -name '*.pom' -o -name '*.module' \)); do \
echo \"Signing \$f...\" && \
gpg --yes -v --armor -o \"\$f.asc\" --detach-sign \"\$f\"; \
done"

echo ""
echo "Signed artifacts:"
find . -name '*.asc' -type f | sort

upload-cdn-artifacts:
- command: s3.put
params:
aws_key: ${cdn_origin_lucene_mongot_aws_key_id}
aws_secret: ${cdn_origin_lucene_mongot_aws_key_secret}
bucket: cdn-origin-lucene-mongot
region: us-east-1
local_files_include_filter:
- "**"
local_files_include_filter_prefix: maven-staging
preserve_path: true
remote_file: lucene-mongot/maven/
content_type: application/octet-stream
skip_existing: true
permissions: private

# public-read so mongot builds can fetch artifacts without AWS auth.
upload-dev-artifacts:
- command: s3.put
params:
aws_key: ${lucene_mongot_development_aws_key_id}
aws_secret: ${lucene_mongot_development_aws_key_secret}
bucket: lucene-mongot-development
region: us-west-1
local_files_include_filter:
- "**"
local_files_include_filter_prefix: maven-staging
preserve_path: true
remote_file: lucene-mongot/maven/
content_type: application/octet-stream
skip_existing: true
permissions: public-read

tasks:
- name: checks
tags: ["pr", "commit_queue"]
commands:
- func: setup
- func: run-checks

- name: tests
tags: ["pr", "commit_queue"]
commands:
- func: setup
- func: run-tests

# Activated by a git tag trigger (releases/mongot/*) configured in the
# Evergreen project settings — not in this YAML.
- name: publish-cdn
tags: ["release"]
depends_on:
- name: checks
- name: tests
commands:
- func: setup
- func: set-release-expansions-from-tag
- func: build-artifacts
- func: sign-artifacts
- func: upload-cdn-artifacts

# Dev builds intentionally skip the checks dependency — our patches may
# introduce lint/style differences that don't affect artifact correctness.
- name: publish-dev
depends_on:
- name: tests
commands:
- func: setup
- func: set-dev-release-version
- func: build-artifacts
- func: sign-artifacts
- func: upload-dev-artifacts

task_groups:
- name: tests_and_cleanup
tags: ["pr", "commit_queue"]
teardown_task:
- func: attach-test-results
tasks:
- tests

buildvariants:
- name: ubuntu2204-large
display_name: "Lucene (x86_64)"
run_on:
- ubuntu2204-large
tasks:
- name: checks
- name: tests_and_cleanup
- name: publish-cdn
activate: false
- name: publish-dev
activate: false

- name: ubuntu2204-arm64-large
display_name: "Lucene (ARM64)"
run_on:
- ubuntu2204-arm64-large
tasks:
- name: checks
- name: tests_and_cleanup
Loading