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

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

Introduction

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

Prototype

String FRAGSIZE

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

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 getFragsize() {
    return this.parameterHolder.getParameterValue(HighlightParams.FRAGSIZE);
}

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

License:Apache License

/**
 * set fragsize {@code hl.fragsize}./*  w  ww .  j a v  a 2s .co m*/
 * 
 * @param fragsize
 */
public HighlightOptions setFragsize(Integer fragsize) {
    addHighlightParameter(HighlightParams.FRAGSIZE, fragsize);
    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//  w  w  w .j  a v a 2s  .  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 ww w.ja  va2s  .c  o  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 highlightingSnippetsFragSizeTest() {

    logger.info("######### Testing SNIPPETS / FRAGSIZE ###########");
    SolrServletRequest req = areq(//ww  w.j a  v  a 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 ww . jav a 2s.  c om*/
            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(//from w  w w .  java2  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(/*from w  w w  . j  av a 2 s  . c  om*/
            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(//from  w w w  .j a  v  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(//  w  w w .  j  ava 2 s.  c o  m
            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']");
}