Example usage for org.apache.lucene.search.highlight QueryScorer setUsePayloads

List of usage examples for org.apache.lucene.search.highlight QueryScorer setUsePayloads

Introduction

In this page you can find the example usage for org.apache.lucene.search.highlight QueryScorer setUsePayloads.

Prototype

public void setUsePayloads(boolean usePayloads) 

Source Link

Usage

From source file:org.apache.solr.handler.component.AlfrescoSolrHighlighter.java

License:Open Source License

/**
 * Return a {@link org.apache.lucene.search.highlight.QueryScorer} suitable
 * for this Query and field./*w ww . jav  a 2  s .co  m*/
 * 
 * @param query
 *            The current query
 * @param tokenStream
 *            document text CachingTokenStream
 * @param requestFieldname
 *            The name of the field
 * @param request
 *            The SolrQueryRequest
 */
@Override
protected QueryScorer getSpanQueryScorer(Query query, String requestFieldname, TokenStream tokenStream,
        SolrQueryRequest request) {
    String schemaFieldName = AlfrescoSolrDataModel.getInstance().mapProperty(requestFieldname,
            FieldUse.HIGHLIGHT, request);
    QueryScorer scorer = new QueryScorer(query,
            request.getParams().getFieldBool(requestFieldname, HighlightParams.FIELD_MATCH, false)
                    ? schemaFieldName
                    : null);
    scorer.setExpandMultiTermQuery(request.getParams().getBool(HighlightParams.HIGHLIGHT_MULTI_TERM, true));

    boolean defaultPayloads = true;// overwritten below
    try {
        // It'd be nice to know if payloads are on the tokenStream but the
        // presence of the attribute isn't a good
        // indicator.
        final Terms terms = request.getSearcher().getSlowAtomicReader().fields().terms(schemaFieldName);
        if (terms != null) {
            defaultPayloads = terms.hasPayloads();
        }
    } catch (IOException e) {
        log.error("Couldn't check for existence of payloads", e);
    }
    scorer.setUsePayloads(
            request.getParams().getFieldBool(requestFieldname, HighlightParams.PAYLOADS, defaultPayloads));
    return scorer;
}