Skip to content

Conversation

@romseygeek
Copy link
Contributor

@romseygeek romseygeek commented Sep 2, 2025

Notable changes in 10.3:

  • Better vectorization of lexical search
  • Better parallelization when reading vector fields leading to faster vector queries
  • Improvements in primary-key terms lookups, help to speed up both indexing and retrieval

elasticsearchmachine and others added 30 commits May 12, 2025 06:13
…28240)

There are a few different things going on in this PR, all of which are required to get the lucene_snspahot branch building again, but the most substantial is the update to the new Lucene 10.3 postings format, Lucene103PostingsFormat.

The Lucene90BlockTreeTermsWriter class is used in the implementation of the 10.1 postings codec in Lucene. With the new 10.3 postings format that class is no longer needed, so it has been moved to a test-only location, in order to support backward compatibility testing.

In Elasticsearch we were using Lucene90BlockTreeTermsWriter (from Lucene) directly, through our copy of the Lucene 9.0 postings format, namely ES812PostingsFormat. So if you look at ES812PostingsFormat , you should that the imports should now show that we're using our own copy.

Additionally, changes are required because of the removal of deprecated methods in IOContext, as well as the override of hints for direct IO.

Co-authored-by: Simon Cooper <[email protected]>
DirectIOIT requires a filesystem that supports Direct IO.

The Elasticsearch CI builds and tests on a tmpfs, /dev/shm/bk, which does not support O_DIRECT.
@romseygeek romseygeek changed the title [DRAFT] Upgrade elasticsearch to lucene 10.3.0 Upgrade elasticsearch to lucene 10.3.0 Sep 15, 2025
@elasticsearchmachine
Copy link
Collaborator

Hi @romseygeek, I've created a changelog YAML for you.

Copy link
Contributor

@ChrisHegarty ChrisHegarty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @romseygeek LGTM

Copy link
Member

@benwtrent benwtrent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looking great!

I will add some notes of my own to the changes in a little bit.

Comment on lines 6 to 7
build:
branch: branch_10x
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't think we need this change now that we are hitting a released version?

public static final IndexVersion EXCLUDE_SOURCE_VECTORS_DEFAULT = def(9_035_0_00, Version.LUCENE_10_2_2);
public static final IndexVersion DISABLE_NORMS_BY_DEFAULT_FOR_LOGSDB_AND_TSDB = def(9_036_0_00, Version.LUCENE_10_2_2);

public static final IndexVersion UPGRADE_TO_LUCENE_10_3_0 = def(9_050_00_0, Version.LUCENE_10_3_0);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to finalize this

DOC_VALUES_SKIPPER("es.doc_values_skipper_feature_flag_enabled=true", Version.fromString("8.18.1"), null),
USE_LUCENE101_POSTINGS_FORMAT("es.use_lucene101_postings_format_feature_flag_enabled=true", Version.fromString("9.1.0"), null),
USE_LUCENE1013POSTINGS_FORMAT("es.use_lucene103_postings_format_feature_flag_enabled=true", Version.fromString("9.2.0"), null),
INFERENCE_CUSTOM_SERVICE_ENABLED("es.inference_custom_service_feature_flag_enabled=true", Version.fromString("8.19.0"), null),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these seems weird...I wonder why we have custom inference service here, but not in main?

@martijnvg about the 103 postings. Do we want to keep that in feature flat same as 101?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like it was a merge error, I'll remove the inference service flag.

@benwtrent benwtrent added the cloud-deploy Publish cloud docker image for Cloud-First-Testing label Sep 16, 2025
@romseygeek romseygeek added the auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) label Sep 23, 2025
@romseygeek romseygeek closed this Sep 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) cloud-deploy Publish cloud docker image for Cloud-First-Testing :Search/Search Search-related issues that do not fall into other categories serverless-linked Added by automation, don't add manually Team:Search Meta label for search team >upgrade v9.2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants