Apache Lucene open-source search software
Go to file
Adrien Grand 3003731aa9
Add IndexInput#prefetch. (#13337)
This adds `IndexInput#prefetch`, which is an optional operation that instructs
the `IndexInput` to start fetching bytes from storage in the background. These
bytes will be picked up by follow-up calls to the `IndexInput#readXXX` methods.
In the future, this will help Lucene move from a maximum of one I/O operation
per search thread to one I/O operation per search thread per `IndexInput`.
Typically, when running a query on two terms, the I/O into the terms dictionary
is sequential today. In the future, we would ideally do these I/Os in parallel
using this new API. Note that this will require API changes to some classes
including `TermsEnum`.

I settled on this API because it's simple and wouldn't require making all
Lucene APIs asynchronous to take advantage of extra I/O concurrency, which I
worry would make the query evaluation logic too complicated.

This change will require follow-ups to start using this new API when working
with terms dictionaries, postings, etc.

Relates #13179

Co-authored-by: Uwe Schindler <uschindler@apache.org>
2024-05-10 13:42:35 +02:00
.github Make run-nightly-smoketester.yml run on java 21+ only 2024-02-29 13:03:42 +01:00
buildSrc Upgrade forbiddenapis to version 3.7 and ASM for APIJAR extraction to 9.7 2024-03-24 00:09:24 +01:00
dev-docs a bit of clarification about GitHub Milestone 2022-08-28 13:52:58 +09:00
dev-tools Improve MissingDoclet linter to check records correctly (#13332) 2024-04-30 18:00:06 +02:00
gradle Add a separate option to allow running Panama Vectorization for all tests with suitable C2 defaults (#13351) 2024-05-09 11:00:51 +01:00
help Schedule compileJava after the internal task if it affects source files (#13282) 2024-04-09 07:44:07 +02:00
lucene Add IndexInput#prefetch. (#13337) 2024-05-10 13:42:35 +02:00
.asf.yaml .asf.yaml 2022-08-16 20:02:47 +09:00
.dir-locals.el LUCENE-9322: Add Lucene90 codec, including VectorFormat 2020-10-18 07:49:36 -04:00
.git-blame-ignore-revs GITHUB#12655: Add google java format upgrade tidy / regen to blame ignore 2023-10-11 16:15:42 -04:00
.gitattributes LUCENE-10305: Ensure line endings of versions.props is LF 2021-12-11 10:10:44 +09:00
.gitignore LUCENE-9920: Remove binary gradle-wrapper.jar from the repository 2021-04-10 16:08:39 +02:00
.hgignore LUCENE-2792: add FST impl 2010-12-12 15:36:08 +00:00
.lift.toml Disable liftbot, we have our own tools 2022-05-05 22:27:57 +02:00
CONTRIBUTING.md Update contributing guide: autocrlf and build dependencies (#12963) 2023-12-22 09:28:53 +01:00
LICENSE.txt LUCENE-10163 Move LICENSE and NOTICE file to top level (#388) 2021-10-18 01:24:11 +02:00
NOTICE.txt Cleanup NOTICE.txt (#12227) 2023-04-18 15:58:09 -04:00
README.md Bump minimum required Java version to 21 (#12753) 2024-02-29 12:16:29 +01:00
build.gradle upgrade icu4j to 74.2 (#13239) 2024-04-04 08:35:25 -04:00
gradlew Bump minimum required Java version to 21 (#12753) 2024-02-29 12:16:29 +01:00
gradlew.bat Bump minimum required Java version to 21 (#12753) 2024-02-29 12:16:29 +01:00
settings.gradle Build: build scans on ge.apache.org to benefit from deep build insights (#12293) 2023-10-24 12:32:18 -04:00
versions.lock upgrade icu4j to 74.2 (#13239) 2024-04-04 08:35:25 -04:00
versions.props upgrade icu4j to 74.2 (#13239) 2024-04-04 08:35:25 -04:00

README.md

Apache Lucene

Lucene Logo

Apache Lucene is a high-performance, full-featured text search engine library written in Java.

Build Status

Online Documentation

This README file only contains basic setup instructions. For more comprehensive documentation, visit:

Building

Basic steps:

  1. Install OpenJDK 21.
  2. Clone Lucene's git repository (or download the source distribution).
  3. Run gradle launcher script (gradlew).

We'll assume that you know how to get and set up the JDK - if you don't, then we suggest starting at https://jdk.java.net/ and learning more about Java, before returning to this README.

See Contributing Guide for details.

Contributing

Bug fixes, improvements and new features are always welcome! Please review the Contributing to Lucene Guide for information on contributing.

Discussion and Support