build: decouple JS API client bundling into an optional module (#4603)
The OpenAPI-generated JS client (npm install + babel build + browserify bundle)
was embedded directly in :solr:webapp's build.gradle, making that module quietly
depend on npm/node for something unrelated to compiling/packaging the webapp
itself. Pull it out into its own module, :solr:webapp:js-client, which exposes
the built bundle via a `jsClientBundle` configuration that :solr:webapp now
consumes as a normal cross-project dependency (mirroring how it already consumes
:solr:server's serverLib/solrCore and :solr:api's jsClient outputs), instead of
:solr:webapp defining the npm tasks and reaching into its own local task outputs.
Also make the JS client bundle optional, mirroring the existing disableUiModule
pattern:
- settings.gradle: new -PdisableJsClient=true flag (gradle.ext.withJsClient),
excluding :solr:webapp:js-client from the build entirely when set.
- solr/webapp/build.gradle: the generatedJSClientBundle dependency is only added
when the flag is on; the war{} block's from(configurations.generatedJSClientBundle)
is left unconditional since an empty configuration is already a safe no-op.
Refactor gradle/node.gradle so it no longer hardcodes which projects need
node/npm.Solr is the blazing-fast, open source, multi-modal search platform built on Apache Lucene. It powers full-text, vector, and geospatial search at many of the world's largest organizations.
For a complete description of the Solr project, team composition, source code repositories, and other details, please see the Solr web site at https://solr.apache.org/
Downloads for Apache Solr distributions are available at https://solr.apache.org/downloads.html.
The Reference Guide contains an entire Deployment Guide to walk you through installing Solr.
You can run Solr in Docker via the official image. Learn more about Solr in Docker
Solr has official support for running on Kubernetes, in the official Docker image. Please refer to the Solr Operator home for details, tutorials and instructions.
Solr includes a few examples to help you get started. To run a specific example, enter:
bin/solr start -e <EXAMPLE> where <EXAMPLE> is one of:
cloud: SolrCloud example
techproducts: Comprehensive example illustrating many of Solr's core capabilities
schemaless: Schema-less example (schema is inferred from data during indexing)
films: Example of starting with _default configset and adding explicit fields dynamically
For instance, if you want to run the techproducts example, enter:
bin/solr start -e techproducts
For a more in-depth introduction, please check out the tutorials in the Solr Reference Guide.
#solr on libera.chatLearn more about developing Solr by reading through the developer docs in ./dev-docs source tree or building Solr from source in ./dev-docs/solr-source-code.adoc
Solr uses Gradle for its build system. Here are some useful hints to build and run Solr locally:
./gradlew dev
cd ./solr/packaging/build/dev bin/solr start
bin/solr script to create and manage Solr collections. For example use the bin/solr post tool to index some sample data.Please review CONTRIBUTING.md for information on contributing to the project.
To get involved in the developer community:
#solr-dev in the the-asf organization. Sign up at https://the-asf.slack.com/messages/CE70MDPMF#solr-dev on libera.chat