Package org.apache.solr.handler
Class RequestHandlerBase
- java.lang.Object
-
- org.apache.solr.handler.RequestHandlerBase
-
- All Implemented Interfaces:
AutoCloseable,ApiSupport,SolrInfoBean,NestedRequestHandler,SolrMetricProducer,SolrRequestHandler,PermissionNameProvider
- Direct Known Subclasses:
AnalysisRequestHandlerBase,BlobHandler,CollectionsHandler,ConfigSetsHandler,ContentStreamHandlerBase,CoreAdminHandler,DumpRequestHandler,FileFloatSource.ReloadCacheRequestHandler,GraphHandler,HealthCheckHandler,InfoHandler,LoggingHandler,LukeRequestHandler,MetricsCollectorHandler,MetricsHandler,MoreLikeThisHandler,NotFoundRequestHandler,PingRequestHandler,PluginInfoHandler,PropertiesRequestHandler,PublicKeyHandler,ReplicationHandler,SchemaHandler,SearchHandler,SecurityConfHandler,SegmentsInfoRequestHandler,ShowFileRequestHandler,SolrConfigHandler,SolrInfoMBeanHandler,StreamHandler,SystemInfoHandler,TaggerRequestHandler,TaskManagementHandler,ThreadDumpHandler,ZookeeperInfoHandler,ZookeeperStatusHandler
public abstract class RequestHandlerBase extends Object implements SolrRequestHandler, SolrInfoBean, NestedRequestHandler, ApiSupport, PermissionNameProvider
Base class for all request handlers.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRequestHandlerBase.HandlerMetricsMetrics for this handler.-
Nested classes/interfaces inherited from interface org.apache.solr.security.PermissionNameProvider
PermissionNameProvider.Name
-
Nested classes/interfaces inherited from interface org.apache.solr.core.SolrInfoBean
SolrInfoBean.Category, SolrInfoBean.Group
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanaggregateNodeLevelMetricsEnabledprotected org.apache.solr.common.params.SolrParamsappendsprotected org.apache.solr.common.params.SolrParamsdefaultsprotected booleanhttpCachingprotected org.apache.solr.common.util.NamedList<?>initArgsprotected org.apache.solr.common.params.SolrParamsinvariantsprotected RequestHandlerBase.HandlerMetricsmetricsprotected SolrMetricsContextsolrMetricsContext-
Fields inherited from interface org.apache.solr.security.PermissionNameProvider
ANY, NULL, values
-
Fields inherited from interface org.apache.solr.request.SolrRequestHandler
TYPE
-
-
Constructor Summary
Constructors Constructor Description RequestHandlerBase()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Collection<Api>getApis()Returns any (non-JAX-RS annotated) APIs associated with this request handler.SolrInfoBean.CategorygetCategory()Category of this componentabstract StringgetDescription()Simple one or two line descriptionorg.apache.solr.common.util.NamedList<?>getInitArgs()RequestHandlerBase.HandlerMetricsgetMetricsForThisRequest(SolrQueryRequest req)The metrics to be used for this request.StringgetName()Simple common usage name, e.g.PluginInfogetPluginInfo()static SolrRequestHandlergetRequestHandler(String handlerName, PluginBag<SolrRequestHandler> reqHandlers)Get the request handler registered to a given name.SolrMetricsContextgetSolrMetricsContext()Implementations should return the context used inSolrMetricProducer.initializeMetrics(SolrMetricsContext, String)to ensure proper cleanup of metrics at the end of the life-cycle of this component.static org.apache.solr.common.params.SolrParamsgetSolrParamsFromNamedList(org.apache.solr.common.util.NamedList<?> args, String key)SolrRequestHandlergetSubHandler(String subPath)Return a RequestHandler to handle a subpath from the path this handler is registered.voidhandleRequest(SolrQueryRequest req, SolrQueryResponse rsp)Handles a query request, this method must be thread safe.abstract voidhandleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp)voidinit(org.apache.solr.common.util.NamedList<?> args)Initializes theSolrRequestHandlerby creating threeSolrParamsnamed.voidinitializeMetrics(SolrMetricsContext parentContext, String scope)Initialize metrics specific to this producer.static ExceptionnormalizeReceivedException(SolrQueryRequest req, Exception e)static voidprocessErrorMetricsOnException(Exception e, RequestHandlerBase.HandlerMetrics metrics)voidsetPluginInfo(PluginInfo pluginInfo)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.api.ApiSupport
getJerseyResources, registerV1, registerV2
-
Methods inherited from interface org.apache.solr.security.PermissionNameProvider
getPermissionName
-
Methods inherited from interface org.apache.solr.metrics.SolrMetricProducer
close
-
-
-
-
Field Detail
-
initArgs
protected org.apache.solr.common.util.NamedList<?> initArgs
-
defaults
protected org.apache.solr.common.params.SolrParams defaults
-
appends
protected org.apache.solr.common.params.SolrParams appends
-
invariants
protected org.apache.solr.common.params.SolrParams invariants
-
httpCaching
protected boolean httpCaching
-
aggregateNodeLevelMetricsEnabled
protected boolean aggregateNodeLevelMetricsEnabled
-
solrMetricsContext
protected SolrMetricsContext solrMetricsContext
-
metrics
protected RequestHandlerBase.HandlerMetrics metrics
-
-
Method Detail
-
init
public void init(org.apache.solr.common.util.NamedList<?> args)
Initializes theSolrRequestHandlerby creating threeSolrParamsnamed.table of parameters Name Description defaults Contains all of the named arguments contained within the list element named "defaults". appends Contains all of the named arguments contained within the list element named "appends". invariants Contains all of the named arguments contained within the list element named "invariants". Example:
<lst name="defaults"> <str name="echoParams">explicit</str> <str name="qf">text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0</str> <str name="mm">2<-1 5<-2 6<90%</str> <str name="bq">incubationdate_dt:[* TO NOW/DAY-1MONTH]^2.2</str> </lst> <lst name="appends"> <str name="fq">inStock:true</str> </lst> <lst name="invariants"> <str name="facet.field">cat</str> <str name="facet.field">manu_exact</str> <str name="facet.query">price:[* TO 500]</str> <str name="facet.query">price:[500 TO *]</str> </lst>
- Specified by:
initin interfaceSolrRequestHandler- Parameters:
args- TheNamedListto initialize from- See Also:
handleRequest(org.apache.solr.request.SolrQueryRequest, org.apache.solr.response.SolrQueryResponse),handleRequestBody(org.apache.solr.request.SolrQueryRequest, org.apache.solr.response.SolrQueryResponse),SolrPluginUtils.setDefaults(org.apache.solr.request.SolrQueryRequest, org.apache.solr.common.params.SolrParams, org.apache.solr.common.params.SolrParams, org.apache.solr.common.params.SolrParams),See also the example solrconfig.xml located in the Solr codebase (example/solr/conf).
-
getSolrMetricsContext
public SolrMetricsContext getSolrMetricsContext()
Description copied from interface:SolrMetricProducerImplementations should return the context used inSolrMetricProducer.initializeMetrics(SolrMetricsContext, String)to ensure proper cleanup of metrics at the end of the life-cycle of this component. This should be the child context if one was created, or null if the parent context was used.- Specified by:
getSolrMetricsContextin interfaceSolrMetricProducer
-
initializeMetrics
public void initializeMetrics(SolrMetricsContext parentContext, String scope)
Description copied from interface:SolrMetricProducerInitialize metrics specific to this producer.- Specified by:
initializeMetricsin interfaceSolrMetricProducer- Parameters:
parentContext- parent metrics context. If this component has the same life-cycle as the parent it can simply use the parent context, otherwise it should obtain a child context usingSolrMetricsContext.getChildContext(Object)passingthisas the child object.scope- component scope
-
getSolrParamsFromNamedList
public static org.apache.solr.common.params.SolrParams getSolrParamsFromNamedList(org.apache.solr.common.util.NamedList<?> args, String key)
-
getInitArgs
public org.apache.solr.common.util.NamedList<?> getInitArgs()
-
handleRequestBody
public abstract void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception
- Throws:
Exception
-
handleRequest
public void handleRequest(SolrQueryRequest req, SolrQueryResponse rsp)
Description copied from interface:SolrRequestHandlerHandles a query request, this method must be thread safe.Information about the request may be obtained from
reqand response information may be set usingrsp.There are no mandatory actions that handleRequest must perform. An empty handleRequest implementation would fulfill all interface obligations.
- Specified by:
handleRequestin interfaceSolrRequestHandler
-
processErrorMetricsOnException
public static void processErrorMetricsOnException(Exception e, RequestHandlerBase.HandlerMetrics metrics)
-
normalizeReceivedException
public static Exception normalizeReceivedException(SolrQueryRequest req, Exception e)
-
getMetricsForThisRequest
public RequestHandlerBase.HandlerMetrics getMetricsForThisRequest(SolrQueryRequest req)
The metrics to be used for this request.
-
getName
public String getName()
Description copied from interface:SolrInfoBeanSimple common usage name, e.g. BasicQueryHandler, or fully qualified class name.- Specified by:
getNamein interfaceSolrInfoBean
-
getDescription
public abstract String getDescription()
Description copied from interface:SolrInfoBeanSimple one or two line description- Specified by:
getDescriptionin interfaceSolrInfoBean
-
getCategory
public SolrInfoBean.Category getCategory()
Description copied from interface:SolrInfoBeanCategory of this component- Specified by:
getCategoryin interfaceSolrInfoBean
-
getSubHandler
public SolrRequestHandler getSubHandler(String subPath)
Description copied from interface:NestedRequestHandlerReturn a RequestHandler to handle a subpath from the path this handler is registered.- Specified by:
getSubHandlerin interfaceNestedRequestHandler
-
getRequestHandler
public static SolrRequestHandler getRequestHandler(String handlerName, PluginBag<SolrRequestHandler> reqHandlers)
Get the request handler registered to a given name.This function is thread safe.
-
setPluginInfo
public void setPluginInfo(PluginInfo pluginInfo)
-
getPluginInfo
public PluginInfo getPluginInfo()
-
getApis
public Collection<Api> getApis()
Description copied from interface:ApiSupportReturns any (non-JAX-RS annotated) APIs associated with this request handler.- Specified by:
getApisin interfaceApiSupport- See Also:
ApiSupport.getJerseyResources()
-
-