Apache Lucene is a high-performance, full-featured text search engine library written in Java.
This README file only contains basic setup instructions. For more comprehensive documentation, visit:
- Latest Releases: https://lucene.apache.org/core/documentation.html
- Nightly: https://ci-builds.apache.org/job/Lucene/job/Lucene-Artifacts-main/javadoc/
- Build System Documentation: help/
- Developer Documentation: dev-docs/
- Migration Guide: lucene/MIGRATE.md
- Install OpenJDK 17 (or greater).
- Clone Lucene's git repository (or download the source distribution).
- 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. Lucene runs with Java 17 or later.
Lucene uses Gradle for build control. Gradle is itself Java-based and may be incompatible with newer Java versions; you can still build and test Lucene with these Java releases, see jvms.txt for more information.
NOTE: Lucene changed from Apache Ant to Gradle as of release 9.0. Prior releases still use Apache Ant.
You can clone the source code from GitHub:
https://github.com/apache/lucene
or get Lucene source archives for a particular release from:
https://lucene.apache.org/core/downloads.html
Download the source archive and uncompress it into a directory of your choice.
Run "./gradlew help", this will show the main tasks that can be executed to show help sub-topics.
If you want to build Lucene, type:
./gradlew assemble
NOTE: DO NOT use the gradle
command that is perhaps installed on your machine. This may
result in using a different gradle version than the project requires and this is known
to lead to very cryptic errors. The "gradle wrapper" (gradlew script) does everything
required to build the project from scratch: it downloads the correct version of gradle,
sets up sane local configurations and is tested on multiple environments.
The first time you run gradlew, it will create a file "gradle.properties" that contains machine-specific settings. Normally you can use this file as-is, but it can be modified if necessary.
./gradlew check
will assemble Lucene and run all validation
tasks (including tests).
./gradlew help
will print a list of help guides that introduce and explain
various parts of the build system, including typical workflow tasks.
If you want to just build the documentation, type:
./gradlew documentation
- IntelliJ - IntelliJ idea can import and build gradle-based projects out of the box.
- Eclipse - Basic support (help/IDEs.txt).
- Netbeans - Not tested.
Bug fixes, improvements and new features are always welcome! Please review the Contributing to Lucene Guide for information on contributing.
- Users Mailing List
- Developers Mailing List
- Issue Tracker
- IRC:
#lucene
and#lucene-dev
on freenode.net