Example usage for org.apache.solr.client.solrj SolrQuery setHighlightRequireFieldMatch

List of usage examples for org.apache.solr.client.solrj SolrQuery setHighlightRequireFieldMatch

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj SolrQuery setHighlightRequireFieldMatch.

Prototype

public SolrQuery setHighlightRequireFieldMatch(boolean flag) 

Source Link

Usage

From source file:com.liferay.portal.search.solr.internal.SolrIndexSearcher.java

License:Open Source License

protected void addHighlights(SolrQuery solrQuery, QueryConfig queryConfig) {
    if (!queryConfig.isHighlightEnabled()) {
        return;//from w  ww.  j  a v  a2 s .c  o m
    }

    solrQuery.setHighlight(true);
    solrQuery.setHighlightFragsize(queryConfig.getHighlightFragmentSize());
    solrQuery.setHighlightSimplePost(HighlightUtil.HIGHLIGHT_TAG_CLOSE);
    solrQuery.setHighlightSimplePre(HighlightUtil.HIGHLIGHT_TAG_OPEN);
    solrQuery.setHighlightSnippets(queryConfig.getHighlightSnippetSize());

    for (String highlightFieldName : queryConfig.getHighlightFieldNames()) {
        addHighlightedField(solrQuery, queryConfig, highlightFieldName);
    }

    solrQuery.setHighlightRequireFieldMatch(queryConfig.isHighlightRequireFieldMatch());
}

From source file:com.liferay.portal.search.solr.SolrIndexSearcher.java

License:Open Source License

protected void addHighlights(SolrQuery solrQuery, QueryConfig queryConfig) {
    if (!queryConfig.isHighlightEnabled()) {
        return;/*from   w  ww  .j a va  2 s  .  c  o m*/
    }

    solrQuery.setHighlight(true);
    solrQuery.setHighlightFragsize(queryConfig.getHighlightFragmentSize());
    solrQuery.setHighlightSimplePost(SearchUtil.HIGHLIGHT_TAG_CLOSE);
    solrQuery.setHighlightSimplePre(SearchUtil.HIGHLIGHT_TAG_OPEN);
    solrQuery.setHighlightSnippets(queryConfig.getHighlightSnippetSize());

    for (String highlightFieldName : queryConfig.getHighlightFieldNames()) {
        addHighlightedField(solrQuery, queryConfig, highlightFieldName);
    }

    solrQuery.setHighlightRequireFieldMatch(queryConfig.isHighlightRequireFieldMatch());
}

From source file:com.thinkbiganalytics.search.SolrSearchService.java

License:Apache License

private QueryResponse executeSearch(String query, int size, int start) {
    final String COLLECTION_LIST = "kylo-data," + SearchIndex.DATASOURCES; //Solr admin to configure beforehand
    final String ALL_FIELDS = "*";
    final String BOLD_HIGHLIGHT_START = "<font style='font-weight:bold'>";
    final String BOLD_HIGHLIGHT_END = "</font>";

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.set("q", query);
    solrQuery.setRows(size);//from  ww  w .  j  av a  2 s  . c  om
    solrQuery.setStart(start);
    solrQuery.setParam("collection", COLLECTION_LIST);
    solrQuery.setHighlight(true);
    solrQuery.set("hl.fl", ALL_FIELDS);
    solrQuery.setHighlightSimplePre(BOLD_HIGHLIGHT_START);
    solrQuery.setHighlightSimplePost(BOLD_HIGHLIGHT_END);
    solrQuery.setHighlightRequireFieldMatch(false);

    try {
        return client.query("kylo-data", solrQuery);
    } catch (SolrServerException | IOException e) {
        throw new RuntimeException("Error encountered during search.");
    }
}

From source file:eu.prestoprime.search.util.SolrQueryUtils.java

License:Open Source License

/**
 * Enable Solr's Highlighting Component on this query object. Search terms
 * in the map (as values) are only highlighted in the belonging search
 * fields./*from ww w  .  j  a v a 2s  . c  om*/
 * 
 * @param solrQuery
 * @param fieldMap
 */
public static void enableHighlight(SolrQuery solrQuery, final Map<Schema.searchField, String> fieldMap) {
    // enable highlighting on Query
    solrQuery.setHighlight(true);

    // unlimited fragment size and hightlights
    solrQuery.setHighlightFragsize(0);

    StringBuilder logMsg = new StringBuilder("Enable highlighting on fields: ");

    // use these to set a start/end tag for highlights other than <em>
    // (defined in Solr Config)
    // solrQuery.setHighlightSimplePre(Constants.getString("HIGHLIGHT_PRE"));
    // solrQuery.setHighlightSimplePost(Constants.getString("HIGHLIGHT_POST"));

    if (fieldMap == null || fieldMap.isEmpty()) { // dismax query -> enable
        // highlighting on all
        // fields
        solrQuery.set("hl.highlightMultiTerm", true);

        for (searchField s : Schema.catchAll) {
            solrQuery.addHighlightField(s.getFieldName());
            logMsg.append(s.getFieldName() + ", ");
        }

        LOGGER.debug(logMsg.toString().substring(0, logMsg.length() - 2));
    } else {
        // highlight matching words in queried fields only
        solrQuery.set("hl.usePhraseHighlighter", true);
        solrQuery.setHighlightRequireFieldMatch(true);
        for (Entry<Schema.searchField, String> e : fieldMap.entrySet()) {
            // highlighting on range fields does no work. Just use text
            // fields
            if (e.getKey().getType().equals(Schema.FieldType.P4_TEXT)
                    || e.getKey().getType().equals(Schema.FieldType.STRING)) {
                logMsg.append(e.getKey().getFieldName() + ", ");
                solrQuery.addHighlightField(e.getKey().getFieldName());
            }
        }
        LOGGER.debug(logMsg.toString().substring(0, logMsg.length() - 2));
    }
}