public class DocumentAnalysisRequestHandler extends AnalysisRequestHandlerBase
<docs>
<doc>
<field name="id">1</field>
<field name="name">The Name</field>
<field name="text">The Text Value</field>
<doc>
<doc>...</doc>
<doc>...</doc>
...
</docs>
Note: Each document must contain a field which serves as the unique key. This key is used in the returned
response to assoicate an analysis breakdown to the analyzed document.
Like the FieldAnalysisRequestHandler
, this handler also supports query analysis by
sending either an "analysis.query" or "q" request paraemter that holds the query text to be analyzed. It also
supports the "analysis.showmatch" parameter which when set to true
, all field tokens that match the query
tokens will be marked as a "match".AnalysisRequestHandlerBase.AnalysisContext, AnalysisRequestHandlerBase.ListBasedTokenStream, AnalysisRequestHandlerBase.TokenTrackingAttribute, AnalysisRequestHandlerBase.TokenTrackingAttributeImpl
SolrInfoMBean.Category
Modifier and Type | Field and Description |
---|---|
private static float |
DEFAULT_BOOST |
private javax.xml.stream.XMLInputFactory |
inputFactory |
static org.slf4j.Logger |
log |
private static XMLErrorLogger |
xmllog |
ATTRIBUTE_MAPPING
appends, defaults, handlerStart, httpCaching, initArgs, invariants, numErrors, numRequests, numTimeouts, totalTime
Constructor and Description |
---|
DocumentAnalysisRequestHandler() |
Modifier and Type | Method and Description |
---|---|
protected NamedList |
doAnalysis(SolrQueryRequest req)
Performs the analysis based on the given solr request and returns the analysis result as a named list.
|
private ContentStream |
extractSingleContentStream(SolrQueryRequest req)
Extracts the only content stream from the request.
|
java.lang.String |
getDescription()
Simple one or two line description
|
java.lang.String |
getSource()
CVS Source, SVN Source, etc
|
java.lang.String |
getSourceId()
CVS Id, SVN Id, etc
|
java.lang.String |
getVersion()
Simple common usage version, e.g.
|
(package private) NamedList<java.lang.Object> |
handleAnalysisRequest(DocumentAnalysisRequest request,
IndexSchema schema)
Handles the resolved
DocumentAnalysisRequest and returns the analysis response as a named list. |
void |
init(NamedList args)
Initializes the
SolrRequestHandler by creating three SolrParams named. |
(package private) SolrInputDocument |
readDocument(javax.xml.stream.XMLStreamReader reader,
IndexSchema schema)
Reads the document from the given xml stream reader.
|
(package private) DocumentAnalysisRequest |
resolveAnalysisRequest(SolrQueryRequest req)
Resolves the
DocumentAnalysisRequest from the given solr request. |
analyzeValue, analyzeValue, getQueryTokenSet, handleRequestBody
getCategory, getDocs, getInitArgs, getName, getStatistics, handleRequest
public static final org.slf4j.Logger log
private static final XMLErrorLogger xmllog
private static final float DEFAULT_BOOST
private javax.xml.stream.XMLInputFactory inputFactory
public void init(NamedList args)
RequestHandlerBase
SolrRequestHandler
by creating three SolrParams
named.
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". |
<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>
init
in interface SolrRequestHandler
init
in class RequestHandlerBase
args
- The NamedList
to initialize fromRequestHandlerBase.handleRequest(org.apache.solr.request.SolrQueryRequest, org.apache.solr.response.SolrQueryResponse)
,
RequestHandlerBase.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).
protected NamedList doAnalysis(SolrQueryRequest req) throws java.lang.Exception
doAnalysis
in class AnalysisRequestHandlerBase
req
- The solr request.java.lang.Exception
- When analysis fails.public java.lang.String getDescription()
SolrInfoMBean
getDescription
in interface SolrInfoMBean
getDescription
in class RequestHandlerBase
public java.lang.String getVersion()
SolrInfoMBean
getVersion
in interface SolrInfoMBean
getVersion
in class RequestHandlerBase
public java.lang.String getSourceId()
SolrInfoMBean
getSourceId
in interface SolrInfoMBean
getSourceId
in class RequestHandlerBase
public java.lang.String getSource()
SolrInfoMBean
getSource
in interface SolrInfoMBean
getSource
in class RequestHandlerBase
DocumentAnalysisRequest resolveAnalysisRequest(SolrQueryRequest req) throws java.io.IOException, javax.xml.stream.XMLStreamException
DocumentAnalysisRequest
from the given solr request.req
- The solr request.java.io.IOException
- Thrown when reading/parsing the content stream of the request fails.javax.xml.stream.XMLStreamException
- Thrown when reading/parsing the content stream of the request fails.NamedList<java.lang.Object> handleAnalysisRequest(DocumentAnalysisRequest request, IndexSchema schema)
DocumentAnalysisRequest
and returns the analysis response as a named list.request
- The DocumentAnalysisRequest
to be handled.schema
- The index schema.SolrInputDocument readDocument(javax.xml.stream.XMLStreamReader reader, IndexSchema schema) throws javax.xml.stream.XMLStreamException
<doc>
<field name="id">1</field>
<field name="name">The Name</field>
<field name="text">The Text Value</field>
</doc>
NOTE: each read document is expected to have at least one field which serves as the unique key.reader
- The XMLStreamReader
from which the document will be read.schema
- The index schema. The schema is used to validate that the read document has a unique key field.javax.xml.stream.XMLStreamException
- When reading of the document fails.private ContentStream extractSingleContentStream(SolrQueryRequest req)
SolrException.ErrorCode.BAD_REQUEST
error is thrown if the request doesn't hold any content stream or holds more than one.req
- The solr request.