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

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

Introduction

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

Prototype

String SNIPPETS

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

Click Source Link

Usage

From source file:com.frank.search.solr.core.query.HighlightOptions.java

License:Apache License

/**
 * @return null if not set
 */
public Integer getNrSnipplets() {
    return this.parameterHolder.getParameterValue(HighlightParams.SNIPPETS);
}

From source file:com.frank.search.solr.core.query.HighlightOptions.java

License:Apache License

/**
 * set {@code hl.snippets}/* w w  w  .  j a  v  a2  s  .  c o  m*/
 * 
 * @param nrSnipplets
 */
public HighlightOptions setNrSnipplets(Integer nrSnipplets) {
    addHighlightParameter(HighlightParams.SNIPPETS, nrSnipplets);
    return this;
}

From source file:com.o19s.solr.swan.highlight.SwanHighlighter.java

License:Apache License

private void doHighlightingByFastVectorHighlighter(SpanAwareFastVectorHighlighter highlighter,
        SpanAwareFieldQuery fieldQuery, SolrQueryRequest req, NamedList docSummaries, int docId, Document doc,
        String fieldName) throws IOException {
    SolrParams params = req.getParams();
    SolrFragmentsBuilder solrFb = getSolrFragmentsBuilder(fieldName, params);
    String[] snippets = highlighter.getBestFragments(fieldQuery, req.getSearcher().getIndexReader(), docId,
            fieldName, params.getFieldInt(fieldName, HighlightParams.FRAGSIZE, 100),
            params.getFieldInt(fieldName, HighlightParams.SNIPPETS, 1),
            getFragListBuilderOverride(fieldName, params), getFragmentsBuilder(fieldName, params),
            solrFb.getPreTags(params, fieldName), solrFb.getPostTags(params, fieldName),
            getEncoder(fieldName, params));
    if (snippets != null && snippets.length > 0)
        docSummaries.add(fieldName, snippets);
    else/*from   www.  j  a  va 2 s . c o  m*/
        alternateField(docSummaries, params, doc, fieldName);
}

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  w  w  . j  a v  a 2s . c  om*/
        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 highlightingSnippetsFragSizeTest() {

    logger.info("######### Testing SNIPPETS / FRAGSIZE ###########");
    SolrServletRequest req = areq(/* w ww .  j a va  2 s  .c o  m*/
            params("q", "name:long", "qt", "/afts", "start", "0", "rows", "5", HighlightParams.HIGHLIGHT,
                    "true", HighlightParams.Q, "long", HighlightParams.FIELDS, "content,name,title",
                    HighlightParams.SNIPPETS, String.valueOf(4), HighlightParams.FRAGSIZE, String.valueOf(40)),
            "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");

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

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

License:Open Source License

@Test
public void highlightingPhraseQueriesTest() {
    logger.info("######### Testing PHRASE QUERIES ###########");

    //Phrase hightling is on by default
    SolrServletRequest req = areq(/* 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.SIMPLE_PRE, "(", HighlightParams.SIMPLE_POST, ")", HighlightParams.SNIPPETS,
                    String.valueOf(1), HighlightParams.FRAGSIZE, String.valueOf(100)),
            "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");

    assertQ(req,
            "//lst[@name='highlighting']/lst/arr/str[.='this is (some) (long) text.  It has the word long in many places.  In fact, it has long on some']");

    req = areq(
            params("q", "name:long", "qt", "/afts", "start", "0", "rows", "5", HighlightParams.HIGHLIGHT,
                    "true", HighlightParams.Q, "\"some long\"", HighlightParams.FIELDS, "name",
                    HighlightParams.USE_PHRASE_HIGHLIGHTER, "false", HighlightParams.SIMPLE_PRE, "(",
                    HighlightParams.SIMPLE_POST, ")", HighlightParams.SNIPPETS, String.valueOf(1),
                    HighlightParams.FRAGSIZE, String.valueOf(100)),
            "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");

    assertQ(req, "//lst[@name='highlighting']/lst/arr/str[.='(some) very (long) name']",
            "//lst[@name='highlighting']/lst/arr/str[.='this is (some) (long) text.  It has the word (long) in many places.  In fact, it has (long) on (some)']");
}

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

License:Open Source License

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

    SolrServletRequest req = areq(/* www . jav  a 2 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.']");
}

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

License:Open Source License

@Test
public void highlightingPrePostTest() {
    logger.info("######### Testing PRE / POST ###########");
    SolrServletRequest req = areq(//ww  w.j  a va 2s.  co  m
            params("q", "name:long", "qt", "/afts", "start", "0", "rows", "5", HighlightParams.HIGHLIGHT,
                    "true", HighlightParams.Q, "long", HighlightParams.FIELDS, "content,name,title",
                    HighlightParams.SIMPLE_PRE, "<al>", HighlightParams.SIMPLE_POST, "<fresco>",
                    HighlightParams.SNIPPETS, String.valueOf(4), HighlightParams.FRAGSIZE, String.valueOf(40)),
            "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");

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

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

License:Open Source License

@Test
public void highlightingCamelCaseTest() {
    logger.info("######### CamelCase ###########");

    SolrServletRequest req = areq(// w w w  . jav  a 2  s.c o m
            params("q", "name:cabbage", "qt", "/afts", "start", "0", "rows", "5", HighlightParams.HIGHLIGHT,
                    "true",
                    //HighlightParams.Q, "lon*",
                    HighlightParams.FIELDS, "name", HighlightParams.HIGHLIGHT_MULTI_TERM, "false",
                    HighlightParams.SIMPLE_PRE, "{", HighlightParams.SIMPLE_POST, "}", HighlightParams.SNIPPETS,
                    String.valueOf(1), HighlightParams.FRAGSIZE, String.valueOf(100)),
            "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");

    assertQ(req, "*[count(//lst[@name='highlighting']/lst)=1]",
            "*[count(//lst[@name='highlighting']/lst/arr[@name='name'])=1]",
            "//lst[@name='highlighting']/lst[1]/arr[@name='name']/str[.='Mixed{Cabbage}String and plurals and discussion']");
}

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

License:Open Source License

@Test
public void highlightingPluralsTest() {
    logger.info("######### Plurals ###########");

    SolrServletRequest req = areq(/* ww  w. j  a  v a  2s .c  om*/
            params("q", "name:plural", "qt", "/afts", "start", "0", "rows", "5", HighlightParams.HIGHLIGHT,
                    "true",
                    //HighlightParams.Q, "lon*",
                    HighlightParams.FIELDS, "name", HighlightParams.HIGHLIGHT_MULTI_TERM, "false",
                    HighlightParams.SIMPLE_PRE, "{", HighlightParams.SIMPLE_POST, "}", HighlightParams.SNIPPETS,
                    String.valueOf(1), HighlightParams.FRAGSIZE, String.valueOf(100)),
            "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");

    assertQ(req, "*[count(//lst[@name='highlighting']/lst)=1]",
            "*[count(//lst[@name='highlighting']/lst/arr[@name='name'])=1]",
            "//lst[@name='highlighting']/lst[1]/arr[@name='name']/str[.='MixedCabbageString and {plurals} and discussion']");
}