Class QueryComponent
- java.lang.Object
-
- org.apache.solr.handler.component.SearchComponent
-
- org.apache.solr.handler.component.QueryComponent
-
- All Implemented Interfaces:
AutoCloseable
,SolrInfoBean
,SolrMetricProducer
,NamedListInitializedPlugin
public class QueryComponent extends SearchComponent
TODO!- Since:
- solr 1.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
QueryComponent.ScoreAndDoc
Fake scorer for a single document-
Nested classes/interfaces inherited from interface org.apache.solr.core.SolrInfoBean
SolrInfoBean.Category, SolrInfoBean.Group
-
-
Field Summary
Fields Modifier and Type Field Description static String
COMPONENT_NAME
protected static EndResultTransformer
MAIN_END_RESULT_TRANSFORMER
protected static EndResultTransformer
SIMPLE_END_RESULT_TRANSFORMER
-
Fields inherited from class org.apache.solr.handler.component.SearchComponent
solrMetricsContext, standard_components
-
-
Constructor Summary
Constructors Constructor Description QueryComponent()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
addFL(StringBuilder fl, String field, boolean additionalAdded)
protected void
createDistributedStats(ResponseBuilder rb)
protected void
createMainQuery(ResponseBuilder rb)
protected void
createRetrieveDocs(ResponseBuilder rb)
int
distributedProcess(ResponseBuilder rb)
Process for a distributed search.protected void
doFieldSortValues(ResponseBuilder rb, SolrIndexSearcher searcher)
protected void
doPrefetch(ResponseBuilder rb)
void
finishStage(ResponseBuilder rb)
Called after all responses have been received for this stage.SolrInfoBean.Category
getCategory()
Category of this componentString
getDescription()
Simple one or two line descriptionprotected int
groupedDistributedProcess(ResponseBuilder rb)
protected void
groupedFinishStage(ResponseBuilder rb)
protected void
handleGroupedResponses(ResponseBuilder rb, ShardRequest sreq)
protected void
handleRegularResponses(ResponseBuilder rb, ShardRequest sreq)
void
handleResponses(ResponseBuilder rb, ShardRequest sreq)
Called after all responses for a single request were receivedprotected void
mergeIds(ResponseBuilder rb, ShardRequest sreq)
protected void
populateNextCursorMarkFromMergedShards(ResponseBuilder rb)
Inspects the state of theResponseBuilder
and populates the nextResponseBuilder.setNextCursorMark(org.apache.solr.search.CursorMark)
as appropriate based on the merged sort values from individual shardsvoid
prepare(ResponseBuilder rb)
Prepare the response.protected void
prepareGrouping(ResponseBuilder rb)
void
process(ResponseBuilder rb)
Actually run the queryprotected int
regularDistributedProcess(ResponseBuilder rb)
protected void
regularFinishStage(ResponseBuilder rb)
protected void
returnFields(ResponseBuilder rb, ShardRequest sreq)
protected org.apache.solr.common.util.NamedList<List<Object>>
unmarshalSortValues(SortSpec sortSpec, org.apache.solr.common.util.NamedList<List<Object>> sortFieldValues, IndexSchema schema)
protected void
updateStats(ResponseBuilder rb, ShardRequest sreq)
-
Methods inherited from class org.apache.solr.handler.component.SearchComponent
getName, getSolrMetricsContext, initializeMetrics, modifyRequest, setName
-
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.util.plugin.NamedListInitializedPlugin
init
-
Methods inherited from interface org.apache.solr.metrics.SolrMetricProducer
close
-
-
-
-
Field Detail
-
COMPONENT_NAME
public static final String COMPONENT_NAME
- See Also:
- Constant Field Values
-
MAIN_END_RESULT_TRANSFORMER
protected static final EndResultTransformer MAIN_END_RESULT_TRANSFORMER
-
SIMPLE_END_RESULT_TRANSFORMER
protected static final EndResultTransformer SIMPLE_END_RESULT_TRANSFORMER
-
-
Method Detail
-
prepare
public void prepare(ResponseBuilder rb) throws IOException
Description copied from class:SearchComponent
Prepare the response. Guaranteed to be called before any SearchComponentSearchComponent.process(org.apache.solr.handler.component.ResponseBuilder)
method. Called for every incoming request.The place to do initialization that is request dependent.
- Specified by:
prepare
in classSearchComponent
- Parameters:
rb
- TheResponseBuilder
- Throws:
IOException
- If there is a low-level I/O error.
-
prepareGrouping
protected void prepareGrouping(ResponseBuilder rb) throws IOException
- Throws:
IOException
-
process
public void process(ResponseBuilder rb) throws IOException
Actually run the query- Specified by:
process
in classSearchComponent
- Parameters:
rb
- TheResponseBuilder
- Throws:
IOException
- If there is a low-level I/O error.
-
doFieldSortValues
protected void doFieldSortValues(ResponseBuilder rb, SolrIndexSearcher searcher) throws IOException
- Throws:
IOException
-
doPrefetch
protected void doPrefetch(ResponseBuilder rb) throws IOException
- Throws:
IOException
-
distributedProcess
public int distributedProcess(ResponseBuilder rb) throws IOException
Description copied from class:SearchComponent
Process for a distributed search.- Overrides:
distributedProcess
in classSearchComponent
- Returns:
- the next stage for this component
- Throws:
IOException
-
groupedDistributedProcess
protected int groupedDistributedProcess(ResponseBuilder rb)
-
regularDistributedProcess
protected int regularDistributedProcess(ResponseBuilder rb)
-
handleResponses
public void handleResponses(ResponseBuilder rb, ShardRequest sreq)
Description copied from class:SearchComponent
Called after all responses for a single request were received- Overrides:
handleResponses
in classSearchComponent
-
handleGroupedResponses
protected void handleGroupedResponses(ResponseBuilder rb, ShardRequest sreq)
-
handleRegularResponses
protected void handleRegularResponses(ResponseBuilder rb, ShardRequest sreq)
-
finishStage
public void finishStage(ResponseBuilder rb)
Description copied from class:SearchComponent
Called after all responses have been received for this stage. Useful when different requests are sent to each shard.- Overrides:
finishStage
in classSearchComponent
-
groupedFinishStage
protected void groupedFinishStage(ResponseBuilder rb)
-
regularFinishStage
protected void regularFinishStage(ResponseBuilder rb)
-
createDistributedStats
protected void createDistributedStats(ResponseBuilder rb)
-
updateStats
protected void updateStats(ResponseBuilder rb, ShardRequest sreq)
-
createMainQuery
protected void createMainQuery(ResponseBuilder rb)
-
addFL
protected boolean addFL(StringBuilder fl, String field, boolean additionalAdded)
-
mergeIds
protected void mergeIds(ResponseBuilder rb, ShardRequest sreq)
-
populateNextCursorMarkFromMergedShards
protected void populateNextCursorMarkFromMergedShards(ResponseBuilder rb)
Inspects the state of theResponseBuilder
and populates the nextResponseBuilder.setNextCursorMark(org.apache.solr.search.CursorMark)
as appropriate based on the merged sort values from individual shards- Parameters:
rb
- AResponseBuilder
that already contains mergedShardDocs
inresultIds
, may or may not be part of a Cursor based request (method will NOOP if not needed)
-
unmarshalSortValues
protected org.apache.solr.common.util.NamedList<List<Object>> unmarshalSortValues(SortSpec sortSpec, org.apache.solr.common.util.NamedList<List<Object>> sortFieldValues, IndexSchema schema)
-
createRetrieveDocs
protected void createRetrieveDocs(ResponseBuilder rb)
-
returnFields
protected void returnFields(ResponseBuilder rb, ShardRequest sreq)
-
getDescription
public String getDescription()
Description copied from interface:SolrInfoBean
Simple one or two line description- Specified by:
getDescription
in interfaceSolrInfoBean
- Specified by:
getDescription
in classSearchComponent
-
getCategory
public SolrInfoBean.Category getCategory()
Description copied from interface:SolrInfoBean
Category of this component- Specified by:
getCategory
in interfaceSolrInfoBean
- Overrides:
getCategory
in classSearchComponent
-
-