Apache Lucene open-source search software
Go to file
Adrien Grand 36109ec362
LUCENE-9356: Add a test that verifies that Lucene catches bit flips. (#1569)
2020-06-11 18:09:09 +02:00
.github LUCENE-9266 remove gradle wrapper jar from source 2020-04-02 11:30:01 -05:00
buildSrc LUCENE-9266 remove gradle wrapper jar from source 2020-04-02 11:30:01 -05:00
dev-docs Revert "SOLR-12930: move Gradle docs from ./help/ to new ./dev-docs/ directory" 2020-01-24 15:56:00 -06:00
dev-tools Upgrade forbiddenapis to hotfix release 3.0.1 (allows upgrade to commons-io 2.7 in Solr) 2020-06-04 01:01:42 +02:00
gradle SOLR-14547: Fix or suppress warnings in solr/client/solrj/io/stream 2020-06-09 19:21:36 -04:00
help LUCENE-7788: fail precommit on unparameterised log messages and examine for wasted work/objects 2020-05-01 13:06:57 -04:00
lucene LUCENE-9356: Add a test that verifies that Lucene catches bit flips. (#1569) 2020-06-11 18:09:09 +02:00
solr SOLR-12823: fix failures in CloudHttp2SolrClientTest CloudSolrClientTest TestCloudSolrClientConnections (#1565) 2020-06-11 10:50:16 -05:00
.asf.yaml Configure notifications. 2020-04-22 15:23:13 +02:00
.gitattributes LUCENE-9077: make git always keep .gradle files with LF EOLs. 2020-04-09 13:55:16 +02:00
.gitignore Generate hardware-specific defaults for gradle parallelism on the first build run (any task). Add some explanations on how to tweak local settings even further (gradlew :helpLocalSettings 2019-12-05 11:14:09 +01:00
.hgignore LUCENE-2792: add FST impl 2010-12-12 15:36:08 +00:00
LICENSE LUCENE-9233 Add top level LICENSE file 2020-02-20 20:53:57 +01:00
README.md Add gradle-relevant readme sections. 2020-01-09 12:36:40 +01:00
build.gradle Upgrade forbiddenapis to hotfix release 3.0.1 (allows upgrade to commons-io 2.7 in Solr) 2020-06-04 01:01:42 +02:00
build.xml LUCENE-9230: explicitly call python version we want from builds 2020-02-18 18:58:17 -05:00
gradlew LUCENE-9372: gradlew does not run on cygwin (Peter Barna via Dawid Weiss) 2020-05-16 10:58:23 +02:00
gradlew.bat LUCENE-9266: correct windows gradle wrapper download script - wrong placement of the quote. 2020-04-08 12:56:39 +02:00
settings.gradle LUCENE-9182: add apache license headers to all .gradle files and enforce in rat task 2020-01-27 12:05:34 -05:00
versions.lock SOLR-14498: BlockCache gets stuck not accepting new stores. Fix gradle check 2020-05-28 08:12:30 -04:00
versions.props SOLR-14498: BlockCache gets stuck not accepting new stores. Fix gradle check 2020-05-28 08:12:30 -04:00

README.md

Apache Lucene and Solr

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

Apache Solr is an enterprise search platform written using Apache Lucene. Major features include full-text search, index replication and sharding, and result faceting and highlighting.

Build Status Build Status

Online Documentation

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

Building Lucene/Solr

(You do not need to do this if you downloaded a pre-built package)

Building with Ant

Lucene and Solr are built using Apache Ant. To build Lucene and Solr, run:

ant compile

If you see an error about Ivy missing while invoking Ant (e.g., .ant/lib does not exist), run ant ivy-bootstrap and retry.

Sometimes you may face issues with Ivy (e.g., an incompletely downloaded artifact). Cleaning up the Ivy cache and retrying is a workaround for most of such issues:

rm -rf ~/.ivy2/cache

The Solr server can then be packaged and prepared for startup by running the following command from the solr/ directory:

ant server

Building with Gradle

There is ongoing work (see LUCENE-9077) to switch the legacy ant-based build system to gradle. Please give it a try!

At the moment of writing, the gradle build requires precisely Java 11 (it may or may not work with newer Java versions).

To build Lucene and Solr, run (./ can be omitted on Windows):

./gradlew assemble

The command above also packages a full distribution of Solr server; the package can be located at:

solr/packaging/build/solr-*

Note that the gradle build does not create or copy binaries throughout the source repository (like ant build does) so you need to switch to the packaging output folder above; the rest of the instructions below remain identical.

Running Solr

After building Solr, the server can be started using the bin/solr control scripts. Solr can be run in either standalone or distributed (SolrCloud mode).

To run Solr in standalone mode, run the following command from the solr/ directory:

bin/solr start

To run Solr in SolrCloud mode, run the following command from the solr/ directory:

bin/solr start -c

The bin/solr control script allows heavy modification of the started Solr. Common options are described in some detail in solr/README.txt. For an exhaustive treatment of options, run bin/solr start -h from the solr/ directory.

Development/IDEs

Ant can be used to generate project files compatible with most common IDEs. Run the ant command corresponding to your IDE of choice before attempting to import Lucene/Solr.

  • Eclipse - ant eclipse (See this for details)
  • IntelliJ - ant idea (See this for details)
  • Netbeans - ant netbeans (See this for details)

Gradle build and IDE support

  • IntelliJ - IntelliJ idea can import the project out of the box. Code formatting conventions should be manually adjusted.
  • Eclipse - Not tested.
  • Netbeans - Not tested.

Running Tests

The standard test suite can be run with the command:

ant test

Like Solr itself, the test-running can be customized or tailored in a number or ways. For an exhaustive discussion of the options available, run:

ant test-help

Gradle build and tests

Run the following command to display an extensive help for running tests with gradle:

./gradlew helpTests

Contributing

Please review the Contributing to Solr Guide for information on contributing.

Discussion and Support