Implicit Request Handlers
Solr ships with many out-of-the-box request handlers, which are called implicit because they do not need to be configured in solrconfig.xml before you are able to use them.
Each implicit handler ships with a named bundle of default, invariant, and appended parameters - a paramset - equivalent to the <defaults>, <invariants>, and <appends> blocks you’d normally write into a <requestHandler> definition in solrconfig.xml.
Because implicit handlers have no entry in solrconfig.xml to edit directly, their paramset (shown for each handler below, e.g. _ADMIN_PING for the Ping handler) is the only way to override their parameters - see How to View Implicit Handler Paramsets and How to Edit Implicit Handler Paramsets below.
Available Implicit Endpoints
| All endpoint paths listed below should be placed after Solr’s host and port (if a port is used) to construct a URL. |
V2 paths that start with api/collections/ exist only in SolrCloud mode. In user-managed mode use the api/cores/<core>/… form of the same endpoint.
|
Admin Handlers
Many of these handlers are used throughout the Admin UI to show information about Solr.
| File |
Return content of files in Documentation: Restricting File Access
Paramset: |
||
| Health |
Report the health of the node. Documentation: Healthchecks
Paramset: none |
||
| Logging |
Retrieve and modify registered loggers.
The log messages kept in memory come from Paramset: none |
||
| Luke |
Expose the internal Lucene index. This handler must have a collection name in the path to the endpoint. Documentation: Luke Request Handler
Paramset: |
||
| Ping |
Health check designed for use by a load balancer. This handler must have a collection name in the path to the endpoint.
Documentation: Ping
Paramset: |
||
| System Properties |
Return JRE system properties. Secret values are redacted. Documentation: Java Properties Screen
To fetch a single property, use a
To fetch a single property, use a path segment:
Paramset: none |
||
| Segments |
Return info on last commit generation Lucene index segments.
Paramset: |
||
| Core Info |
Return core information. Documentation: Core Info Handler
Paramset: |
||
| Threads |
Return info on all JVM threads.
Abbreviated JSON response with the default
Abbreviated JSON response.
The thread dump is an array of objects, each containing a
Paramset: none |
Analysis Handlers
| Document Analysis |
Return a breakdown of the analysis process of the given document. Expects a single content stream shaped like this, where every document includes a field serving as the unique key (used to associate each analysis breakdown back to its document):
The response breaks each field down by analysis stage, alternating the analyzer/filter class name with the tokens it produced (trimmed here for brevity):
Also supports query-time analysis via an
Paramset: |
||||||||||||
| Field Analysis |
Return index- and query-time analysis over the given field(s)/field type(s). This handler drives the Analysis Screen in Solr’s Admin UI.
If neither
Paramset: |
Handlers for Configuration
| Config API |
Retrieve and modify Solr configuration. Documentation: Config API
Paramset: |
| Dump |
Echo the request contents back to the client. This handler must have a collection name in the path to the endpoint.
Paramset: |
| Replication |
Replicate indexes for SolrCloud recovery and user-managed cluster index distribution. This handler must have a core name in the path to the endpoint. Documentation: User-Managed Index Replication Index Replication
Paramset: |
| Schema API |
Retrieve and modify the Solr schema. Documentation: Schema API
Paramset: |
Query Handlers
| Export |
Export full sorted result sets. Documentation: Exporting Result Sets
Paramset: |
| RealTimeGet |
Low-latency retrieval of the latest version of a document. Documentation: RealTime Get
Paramset: |
| Graph Traversal |
Return GraphML formatted output from a Documentation: Graph Traversal
Paramset: |
| SQL |
SQL query support. This handler is part of the Documentation: SQL Request Handler
Paramset: |
| Streaming Expressions |
Distributed stream processing. Documentation: Streaming Requests and Responses
Paramset: |
| Terms |
Return a field’s indexed terms and the number of documents containing each term. Documentation: Using the Terms Component in a Request Handler
Paramset: |
| Task List |
List the active cancellable tasks, or check whether one task is still active. This handler must have a collection name in the path to the endpoint. Documentation: Task Management
Paramset: |
| Task Cancellation |
Cancel an active task by its ID. This handler must have a collection name in the path to the endpoint. Documentation: Task Management
Paramset: |
Update Handlers
| Update |
Add, delete and update indexed documents formatted as SolrXML, CSV, SolrJSON or javabin. Documentation: Indexing with Update Handlers
Paramset: |
| CSV Updates |
Add and update CSV-formatted documents. Documentation: CSV Update Convenience Paths
Paramset: |
| JSON Updates |
Add, delete and update SolrJSON-formatted documents. Documentation: JSON Update Convenience Paths
Paramset: |
| Custom JSON Updates |
Add and update custom JSON-formatted documents. Documentation: Transforming and Indexing Custom JSON Both the v2
Paramset: |
| CBOR Updates |
Add and update CBOR-formatted documents. Documentation: Indexing with Update CBOR data format
Paramset: |
How to View Implicit Handler Paramsets
You can see configuration for all request handlers, including the implicit request handlers, via the Config API.
To include the expanded paramset in the response, as well as the effective parameters from merging the paramset parameters with the built-in parameters, use the expandParams request parameter.
For example, for the /export request handler, you can make a request like this:
-
V1 API
-
V2 API
http://localhost:8983/solr/gettingstarted/config/requestHandler?componentName=/export&expandParams=true
http://localhost:8983/api/collections/gettingstarted/config/requestHandler?componentName=/export&expandParams=true
The response will look similar to:
{
"config": {
"requestHandler": {
"/export": {
"class": "solr.ExportHandler",
"useParams": "_EXPORT",
"components": ["query"],
"defaults": {
"wt": "json"
},
"invariants": {
"rq": "{!xport}",
"distrib": false
},
"name": "/export",
"_useParamsExpanded_": {
"_EXPORT": "[NOT AVAILABLE]"
},
"_effectiveParams_": {
"distrib": "false",
"omitHeader": "true",
"wt": "json",
"rq": "{!xport}"
}
}
}
}
}
How to Edit Implicit Handler Paramsets
Because implicit request handlers are not present in solrconfig.xml, configuration of their associated default, invariant and appends parameters may be edited via the Request Parameters API using the Paramset listed in each handler’s entry above.
See The useParams Parameter to override a paramset at request time instead of editing it.
However, other parameters, including SearchHandler components, may not be modified.
The invariants and appends specified in the implicit configuration cannot be overridden.
How to Disable an Implicit Handler
You may want to disable the loading of an implicit handler.
This is supported by remapping the name of the handler to the NoOpRequestHandler in solrconfig.xml, which will return a 403 FORBIDDEN status code.
For example, to disable the /update/csv handler you would re-define it in solrconfig.xml as:
<requestHandler name="/update/csv" class="solr.NoOpRequestHandler"></requestHandler>