List of usage examples for org.apache.lucene.search.highlight QueryScorer setUsePayloads
public void setUsePayloads(boolean usePayloads)
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; }