blob: ff596ced2ff9b77e39c308d688e8028eae3e5970 [file] [log] [blame]
= Implicit RequestHandlers
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
Solr ships with many out-of-the-box RequestHandlers, which are called implicit because they do not need to be configured in `solrconfig.xml` before you are able to use them.
These handlers have pre-defined default parameters, known as _paramsets_, which can be modified if necessary.
== Available Implicit Endpoints
NOTE: All endpoint paths listed below should be placed after Solr's host and port (if a port is used) to construct a URL.
=== Admin Handlers
Many of these handlers are used throughout the Admin UI to show information about Solr.
[horizontal]
File:: Returns content of files in `${solr.home}/conf/`. This handler must have a collection name in the path to the endpoint.
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/admin/file` |{solr-javadocs}/solr-core/org/apache/solr/handler/admin/ShowFileRequestHandler.html[ShowFileRequestHandler] |`_ADMIN_FILE`
|===
Health:: Reporting the health of the node (_available only in SolrCloud mode_)
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoints |Class & Javadocs |Paramset
|v1: `solr/admin/info/health`
v2: `api/node/health` |{solr-javadocs}/solr-core/org/apache/solr/handler/admin/HealthCheckHandler.html[HealthCheckHandler] |
|===
+
This endpoint also accepts additional request parameters. Please see {solr-javadocs}/solr-core/org/apache/solr/handler/admin/HealthCheckHandler.html[Javadocs] for details.
Logging:: Retrieve and modify registered loggers.
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoints |Class & Javadocs |Paramset
|v1: `solr/admin/info/logging`
v2: `api/node/logging` |{solr-javadocs}/solr-core/org/apache/solr/handler/admin/ShowFileRequestHandler.html[LoggingHandler] |`_ADMIN_LOGGING`
|===
Luke:: Expose the internal Lucene index. This handler must have a collection name in the path to the endpoint.
+
*Documentation*: <<luke-request-handler.adoc#,Luke Request Handler>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/admin/luke` |{solr-javadocs}/solr-core/org/apache/solr/handler/admin/LukeRequestHandler.html[LukeRequestHandler] |`_ADMIN_LUKE`
|===
MBeans:: Provide info about all registered {solr-javadocs}/solr-core/org/apache/solr/core/SolrInfoBean.html[SolrInfoMBeans]. This handler must have a collection name in the path to the endpoint.
+
*Documentation*: <<mbean-request-handler.adoc#,MBean Request Handler>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/admin/mbeans` |{solr-javadocs}/solr-core/org/apache/solr/handler/admin/SolrInfoMBeanHandler.html[SolrInfoMBeanHandler] |`_ADMIN_MBEANS`
|===
Ping:: Health check. This handler must have a collection name in the path to the endpoint.
+
*Documentation*: <<ping.adoc#,Ping>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/admin/ping` |{solr-javadocs}/solr-core/org/apache/solr/handler/PingRequestHandler.html[PingRequestHandler] |`_ADMIN_PING`
|===
Plugins:: Return info about all registered plugins. This handler must have a collection name in the path to the endpoint.
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/admin/plugins` |{solr-javadocs}/solr-core/org/apache/solr/handler/admin/PluginInfoHandler.html[PluginInfoHandler] | None.
|===
System Properties:: Return JRE system properties.
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoints |Class & Javadocs |Paramset
|v1: `solr/admin/info/properties`
v2: `api/node/properties` |{solr-javadocs}/solr-core/org/apache/solr/handler/admin/PropertiesRequestHandler.html[PropertiesRequestHandler] |`_ADMIN_PROPERTIES`
|===
Segments:: Return info on last commit generation Lucene index segments.
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/admin/segments` |{solr-javadocs}/solr-core/org/apache/solr/handler/admin/SegmentsInfoRequestHandler.html[SegmentsInfoRequestHandler] |`_ADMIN_SEGMENTS`
|===
System Settings:: Return server statistics and settings.
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoints |Class & Javadocs |Paramset
|v1: `solr/admin/info/system`
v2: `api/node/system` |{solr-javadocs}/solr-core/org/apache/solr/handler/admin/SystemInfoHandler.html[SystemInfoHandler] |`_ADMIN_SYSTEM`
|===
+
This endpoint can also take the collection or core name in the path (`solr/<collection>/admin/system` or `solr/<core>/admin/system`) which will include all of the system-level information and additional information about the specific core that served the request.
Threads:: Return info on all JVM threads.
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoints |Class & Javadocs |Paramset
|v1: `solr/admin/info/threads`
v2: `api/node/threads` |{solr-javadocs}/solr-core/org/apache/solr/handler/admin/ThreadDumpHandler.html[ThreadDumpHandler] |`_ADMIN_THREADS`
|===
=== Analysis Handlers
[horizontal]
Document Analysis:: Return a breakdown of the analysis process of the given document.
+
*Documentation*: https://cwiki.apache.org/confluence/display/solr/AnalysisRequestHandler
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/analysis/document` |{solr-javadocs}/solr-core/org/apache/solr/handler/DocumentAnalysisRequestHandler.html[DocumentAnalysisRequestHandler] |`_ANALYSIS_DOCUMENT`
|===
Field Analysis:: Return index- and query-time analysis over the given field(s)/field type(s). This handler drives the <<analysis-screen.adoc#,Analysis screen>> in Solr's Admin UI.
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/analysis/field` |{solr-javadocs}/solr-core/org/apache/solr/handler/FieldAnalysisRequestHandler.html[FieldAnalysisRequestHandler] |`_ANALYSIS_FIELD`
|===
=== Handlers for Configuration
[horizontal]
Config API:: Retrieve and modify Solr configuration.
+
*Documentation*: <<config-api.adoc#,Config API>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|v1: `solr/<collection>/config`
v2: `api/collections/<collection>/config` |{solr-javadocs}/solr-core/org/apache/solr/handler/SolrConfigHandler.html[SolrConfigHandler] |`_CONFIG`
|===
Dump:: Echo the request contents back to the client.
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/debug/dump` |{solr-javadocs}/solr-core/org/apache/solr/handler/DumpRequestHandler.html[DumpRequestHandler] |`_DEBUG_DUMP`
|===
Replication:: Replicate indexes for SolrCloud recovery and Leader/Follower index distribution. This handler must have a core name in the path to the endpoint.
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<core>/replication` |{solr-javadocs}/solr-core/org/apache/solr/handler/ReplicationHandler.html[ReplicationHandler] |`_REPLICATION`
|===
Schema API:: Retrieve and modify the Solr schema.
+
*Documentation*: <<schema-api.adoc#,Schema API>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|v1: `solr/<collection>/schema`, `solr/<core>/schema`
v2: `api/collections/<collection>/schema`, `api/cores/<core>/schema` |{solr-javadocs}/solr-core/org/apache/solr/handler/SchemaHandler.html[SchemaHandler] |`_SCHEMA`
|===
=== Query Handlers
[horizontal]
Export:: Export full sorted result sets.
+
*Documentation*: <<exporting-result-sets.adoc#,Exporting Result Sets>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/export` |{solr-javadocs}/solr-core/org/apache/solr/handler/ExportHandler.html[ExportHandler] |`_EXPORT`
|===
RealTimeGet:: Low-latency retrieval of the latest version of a document.
+
*Documentation*: <<realtime-get.adoc#,RealTime Get>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/get` |{solr-javadocs}/solr-core/org/apache/solr/handler/RealTimeGetHandler.html[RealTimeGetHandler] |`_GET`
|===
Graph Traversal:: Return http://graphml.graphdrawing.org/[GraphML] formatted output from a `gatherNodes` streaming expression.
+
*Documentation*: <<graph-traversal.adoc#,Graph Traversal>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/graph` |{solr-javadocs}/solr-core/org/apache/solr/handler/GraphHandler.html[GraphHandler] |`_ADMIN_GRAPH`
|===
SQL:: Front end of the Parallel SQL interface.
+
*Documentation*: <<parallel-sql-interface.adoc#sql-request-handler,SQL Request Handler>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/sql` |{solr-javadocs}/solr-core/org/apache/solr/handler/SQLHandler.html[SQLHandler] |`_SQL`
|===
Streaming Expressions:: Distributed stream processing.
+
*Documentation*: <<streaming-expressions.adoc#streaming-requests-and-responses,Streaming Requests and Responses>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/stream` |{solr-javadocs}/solr-core/org/apache/solr/handler/StreamHandler.html[StreamHandler] |`_STREAM`
|===
Terms:: Return a field's indexed terms and the number of documents containing each term.
+
*Documentation*: <<the-terms-component.adoc#using-the-terms-component-in-a-request-handler,Using the Terms Component in a Request Handler>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/terms` |{solr-javadocs}/solr-core/org/apache/solr/handler/component/SearchHandler.html[SearchHandler] |`_TERMS`
|===
=== Update Handlers
[horizontal]
Update:: Add, delete and update indexed documents formatted as SolrXML, CSV, SolrJSON or javabin.
+
*Documentation*: <<uploading-data-with-index-handlers.adoc#,Uploading Data with Index Handlers>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/update` |{solr-javadocs}/solr-core/org/apache/solr/handler/UpdateRequestHandler.html[UpdateRequestHandler] |`_UPDATE`
|===
CSV Updates:: Add and update CSV-formatted documents.
+
*Documentation*: <<uploading-data-with-index-handlers.adoc#csv-update-convenience-paths,CSV Update Convenience Paths>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/update/csv` |{solr-javadocs}/solr-core/org/apache/solr/handler/UpdateRequestHandler.html[UpdateRequestHandler] |`_UPDATE_CSV`
|===
JSON Updates:: Add, delete and update SolrJSON-formatted documents.
+
*Documentation*: <<uploading-data-with-index-handlers.adoc#json-update-convenience-paths,JSON Update Convenience Paths>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/update/json` |{solr-javadocs}/solr-core/org/apache/solr/handler/UpdateRequestHandler.html[UpdateRequestHandler] |`_UPDATE_JSON`
|===
Custom JSON Updates:: Add and update custom JSON-formatted documents.
+
*Documentation*: <<transforming-and-indexing-custom-json.adoc#,Transforming and Indexing Custom JSON>>
+
[cols="3*.",frame=none,grid=cols,options="header"]
|===
|API Endpoint |Class & Javadocs |Paramset
|`solr/<collection>/update/json/docs` |{solr-javadocs}/solr-core/org/apache/solr/handler/UpdateRequestHandler.html[UpdateRequestHandler] |`_UPDATE_JSON_DOCS`
|===
== How to View Implicit Handler Paramsets
You can see configuration for all request handlers, including the implicit request handlers, via the <<config-api.adoc#,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 the `/export` request handler, you can make a request like this:
[.dynamic-tabs]
--
[example.tab-pane#v1expandparams]
====
[.tab-label]*V1 API*
[source,bash]
----
http://localhost:8983/solr/gettingstarted/config/requestHandler?componentName=/export&expandParams=true
----
====
[example.tab-pane#v2expandparams]
====
[.tab-label]*V2 API*
[source,bash]
----
http://localhost:8983/api/collections/gettingstarted/config/requestHandler?componentName=/export&expandParams=true
----
====
--
The response will look similar to:
[source,json]
----
{
"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.adoc#, Request Parameters API>> using the paramset listed in the above table. However, other parameters, including SearchHandler components, may not be modified. The invariants and appends specified in the implicit configuration cannot be overridden.