Example usage for org.apache.solr.common.params HighlightParams MERGE_CONTIGUOUS_FRAGMENTS

List of usage examples for org.apache.solr.common.params HighlightParams MERGE_CONTIGUOUS_FRAGMENTS

Introduction

In this page you can find the example usage for org.apache.solr.common.params HighlightParams MERGE_CONTIGUOUS_FRAGMENTS.

Prototype

String MERGE_CONTIGUOUS_FRAGMENTS

To view the source code for org.apache.solr.common.params HighlightParams MERGE_CONTIGUOUS_FRAGMENTS.

Click Source Link

Usage

From source file:nl.knaw.huygens.facetedsearch.AbstractSolrServer.java

License:Open Source License

@Override
public Map<String, Object> search(FacetedSearchParameters<?> fsp) throws IndexException {
    ElaborateSearchParameters sp = (ElaborateSearchParameters) fsp;
    Log.info("searchparameters={}", sp);
    queryComposer.compose(sp);/*  w w  w  . ja  v a 2 s.  co m*/
    String queryString = queryComposer.getSearchQuery();
    String[] facetFields = getFacetFields(sp);
    //      Log.debug("search({},{})", queryString, sp.getSort());
    Map<String, String> textFieldMap = sp.getTextFieldsToSearch();

    SolrQuery query = new SolrQuery();
    String[] fieldsToReturn = getIndexFieldToReturn(sp.getResultFields());
    query.setQuery(queryString)//
            .setFields(fieldsToReturn)//
            .setRows(ROWS)//
            .addFacetField(facetFields)//
            .setFacetMinCount(1)//
            .setFacetLimit(FACET_LIMIT);
    if (queryComposer.mustHighlight()) {
        query//
                .setHighlight(true)//
                .setHighlightSnippets(500)//
                .setHighlightFragsize(HIGHLIGHT_FRAGSIZE);

        query.set(HighlightParams.MERGE_CONTIGUOUS_FRAGMENTS, false);
        query.set(HighlightParams.MAX_CHARS, -1);
        query.set(HighlightParams.FIELDS, textFieldMap.keySet().toArray(new String[textFieldMap.size()]));
        query.set(HighlightParams.Q, queryComposer.getHighlightQuery());
    }
    query = setSort(query, sp);

    Map<String, Object> data = getSearchData(sp, facetFields, query, fieldsToReturn);
    return data;
}

From source file:org.alfresco.repo.search.impl.solr.SolrQueryHTTPClient.java

License:Open Source License

protected void buildHightlightParameters(SearchParameters searchParameters, URLCodec encoder, StringBuilder url)
        throws UnsupportedEncodingException {
    if (searchParameters.getHighlight() != null) {
        url.append("&").append(HighlightParams.HIGHLIGHT + "=true");
        url.append("&" + HighlightParams.HIGHLIGHT + ".q=")
                .append(encoder.encode(searchParameters.getSearchTerm(), "UTF-8"));

        if (searchParameters.getHighlight().getSnippetCount() != null) {
            url.append("&").append(HighlightParams.SNIPPETS + "=")
                    .append(searchParameters.getHighlight().getSnippetCount());
        }//from  w  ww  . j av  a 2 s.  co m
        if (searchParameters.getHighlight().getFragmentSize() != null) {
            url.append("&").append(HighlightParams.FRAGSIZE + "=")
                    .append(searchParameters.getHighlight().getFragmentSize());
        }
        if (searchParameters.getHighlight().getMaxAnalyzedChars() != null) {
            url.append("&").append(HighlightParams.MAX_CHARS + "=")
                    .append(searchParameters.getHighlight().getMaxAnalyzedChars());
        }
        if (searchParameters.getHighlight().getMergeContiguous() != null) {
            url.append("&").append(HighlightParams.MERGE_CONTIGUOUS_FRAGMENTS + "=")
                    .append(searchParameters.getHighlight().getMergeContiguous());
        }
        if (searchParameters.getHighlight().getUsePhraseHighlighter() != null) {
            url.append("&").append(HighlightParams.USE_PHRASE_HIGHLIGHTER + "=")
                    .append(searchParameters.getHighlight().getUsePhraseHighlighter());
        }
        if (searchParameters.getHighlight().getPrefix() != null) {
            url.append("&").append(HighlightParams.SIMPLE_PRE + "=")
                    .append(encoder.encode(searchParameters.getHighlight().getPrefix(), "UTF-8"));
        }
        if (searchParameters.getHighlight().getPostfix() != null) {
            url.append("&").append(HighlightParams.SIMPLE_POST + "=")
                    .append(encoder.encode(searchParameters.getHighlight().getPostfix(), "UTF-8"));
        }
        if (searchParameters.getHighlight().getFields() != null
                && !searchParameters.getHighlight().getFields().isEmpty()) {
            List<String> fieldNames = new ArrayList<>(searchParameters.getHighlight().getFields().size());
            for (FieldHighlightParameters aField : searchParameters.getHighlight().getFields()) {
                ParameterCheck.mandatoryString("highlight field", aField.getField());
                fieldNames.add(aField.getField());

                if (aField.getSnippetCount() != null) {
                    url.append("&f.").append(encoder.encode(aField.getField(), "UTF-8"))
                            .append("." + HighlightParams.SNIPPETS + "=").append(aField.getSnippetCount());
                }

                if (aField.getFragmentSize() != null) {
                    url.append("&f.").append(encoder.encode(aField.getField(), "UTF-8"))
                            .append("." + HighlightParams.FRAGSIZE + "=").append(aField.getFragmentSize());
                }

                if (aField.getFragmentSize() != null) {
                    url.append("&f.").append(encoder.encode(aField.getField(), "UTF-8"))
                            .append("." + HighlightParams.FRAGSIZE + "=").append(aField.getFragmentSize());
                }

                if (aField.getMergeContiguous() != null) {
                    url.append("&f.").append(encoder.encode(aField.getField(), "UTF-8"))
                            .append("." + HighlightParams.MERGE_CONTIGUOUS_FRAGMENTS + "=")
                            .append(aField.getMergeContiguous());
                }

                if (aField.getPrefix() != null) {
                    url.append("&f.").append(encoder.encode(aField.getField(), "UTF-8"))
                            .append("." + HighlightParams.SIMPLE_PRE + "=")
                            .append(encoder.encode(aField.getPrefix(), "UTF-8"));
                }

                if (aField.getPostfix() != null) {
                    url.append("&f.").append(encoder.encode(aField.getField(), "UTF-8"))
                            .append("." + HighlightParams.SIMPLE_POST + "=")
                            .append(encoder.encode(aField.getPostfix(), "UTF-8"));
                }
            }
            url.append("&").append(HighlightParams.FIELDS + "=")
                    .append(encoder.encode(String.join(",", fieldNames), "UTF-8"));
        }
    }
}

From source file:org.alfresco.solr.highlight.AlfrescoHighlighterTest.java

License:Open Source License

@Test
public void highlightingMergeContinuousFragmentsTest() {
    logger.info("######### MergeContiguous ###########");

    SolrServletRequest req = areq(/*from   w  w  w. ja v a2 s  .c  o  m*/
            params("q", "name:long", "qt", "/afts", "start", "0", "rows", "5", HighlightParams.HIGHLIGHT,
                    "true", HighlightParams.Q, "'some long'", HighlightParams.FIELDS, "name",
                    HighlightParams.MERGE_CONTIGUOUS_FRAGMENTS, "true", HighlightParams.SIMPLE_PRE, "{",
                    HighlightParams.SIMPLE_POST, "}", HighlightParams.SNIPPETS, String.valueOf(4),
                    HighlightParams.FRAGSIZE, String.valueOf(40)),
            "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");

    assertQ(req, "*[count(//lst[@name='highlighting']/lst/arr)=1]",
            "//lst[@name='highlighting']/lst/arr[@name='name']/str[.='this is {some} {long} text.  It has the word long in many places.  In fact, it has long on some different fragments.  Let us see what happens to long in this case.']");
}