SOLR-16738: Refactor AdminHandlersProxy for better extensibility  (#3991)

Replaces the static AdminHandlersProxy utility with an OOP hierarchy                                                                                                                                                                       
under a new 'proxy' package. RemoteRequestProxy provides the core                                                                                                                                                                          
proxying logic; GenericV1RequestProxy and V2SolrRequestBasedProxy                                                                                                                                                                          
handle v1 and v2 requests respectively. Callers can now customize                                                                                                                                                                          
per-endpoint behaviour (response handling, param names, request                                                                                                                                                                            
construction) via subclassing rather than branching in a single class.                                                                                                                                                                     
                                                                                                                                                                                                                                             
Also adds WrappedSolrRequest, a delegating SolrRequest decorator used                                                                                                                                                                      
by V2SolrRequestBasedProxy to strip internal params before proxying.
16 files changed
tree: ddf0458b2ff1e79c70b24a707a3f40c89185c6b9
  1. .github/
  2. build-tools/
  3. changelog/
  4. dev-docs/
  5. dev-tools/
  6. gradle/
  7. kotlin-js-store/
  8. platform/
  9. solr/
  10. .asf.yaml
  11. .editorconfig
  12. .git-blame-ignore-revs
  13. .gitattributes
  14. .gitignore
  15. AGENTS.md
  16. build.gradle
  17. CHANGELOG.md
  18. CONTRIBUTING.md
  19. gradle.lockfile
  20. gradlew
  21. gradlew.bat
  22. LICENSE.txt
  23. NOTICE.txt
  24. README.md
  25. settings-gradle.lockfile
  26. settings.gradle
README.md

Welcome to the Apache Solr project!


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.

Build Status Build Status

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/

Download

Downloads for Apache Solr distributions are available at https://solr.apache.org/downloads.html.

Running Solr

Installing Solr

The Reference Guide contains an entire Deployment Guide to walk you through installing Solr.

Running Solr in Docker

You can run Solr in Docker via the official image. Learn more about Solr in Docker

Running Solr on Kubernetes

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.

How to Use

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.

Support

Developer Documentation

Learn 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

Quickstart

Solr uses Gradle for its build system. Here are some useful hints to build and run Solr locally:

  • To build a Solr dev distribution:
./gradlew dev
  • To run the Solr dev distribution locally:
cd ./solr/packaging/build/dev
bin/solr start
  • Open a web browser and go to http://localhost:8983/solr/ to access the Solr Admin interface. You can also use the bin/solr script to create and manage Solr collections. For example use the bin/solr post tool to index some sample data.

Get Involved

Please review CONTRIBUTING.md for information on contributing to the project.

To get involved in the developer community: