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

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

Introduction

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

Prototype

String Q

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

Click Source Link

Usage

From source file:com.frank.search.solr.core.DefaultQueryParser.java

License:Apache License

/**
 * Append highlighting parameters to//from  w w  w  .jav a 2  s .  c  o m
 * {@link org.apache.solr.client.solrj.SolrQuery}
 *
 * @param solrQuery
 * @param query
 */
protected void processHighlightOptions(SolrQuery solrQuery, HighlightQuery query) {
    if (query.hasHighlightOptions()) {
        HighlightOptions highlightOptions = query.getHighlightOptions();
        solrQuery.setHighlight(true);
        if (!highlightOptions.hasFields()) {
            solrQuery.addHighlightField(HighlightOptions.ALL_FIELDS.getName());
        } else {
            for (Field field : highlightOptions.getFields()) {
                solrQuery.addHighlightField(field.getName());
            }
            for (FieldWithHighlightParameters fieldWithHighlightParameters : highlightOptions
                    .getFieldsWithHighlightParameters()) {
                addPerFieldHighlightParameters(solrQuery, fieldWithHighlightParameters);
            }
        }
        for (HighlightParameter option : highlightOptions.getHighlightParameters()) {
            addOptionToSolrQuery(solrQuery, option);
        }
        if (highlightOptions.hasQuery()) {
            solrQuery.add(HighlightParams.Q, getQueryString(highlightOptions.getQuery()));
        }
    }
}

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);//from ww  w  . j ava  2s .com
    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.solr.highlight.AlfrescoHighlighterTest.java

License:Open Source License

@Test
public void highlightingSnippetsFragSizeTest() {

    logger.info("######### Testing SNIPPETS / FRAGSIZE ###########");
    SolrServletRequest req = areq(//  w  w  w  . j a v a2  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.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(/*ww w . ja  va  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.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 highlightingMaxAnalyzedCharsTest() {
    logger.info("######### maxAnalyzedChars ###########");

    SolrServletRequest req = areq(params("q", "name:long", "qt", "/afts", "start", "0", "rows", "5",
            HighlightParams.HIGHLIGHT, "true", HighlightParams.Q, "long", HighlightParams.FIELDS, "name,title",
            HighlightParams.MAX_CHARS, "18", HighlightParams.SIMPLE_PRE, "{", HighlightParams.SIMPLE_POST, "}"),
            "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");

    assertQ(req, "*[count(//lst[@name='highlighting']/lst)=2]",
            "*[count(//lst[@name='highlighting']/lst/arr[@name='name'])=2]",
            "//lst[@name='highlighting']/lst[1]/arr[@name='name']/str[.='some very {long} name']",
            "//lst[@name='highlighting']/lst[2]/arr[@name='name']/str[.='this is some {long}']");
}

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 .  j av 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 highlightingLocalConfigurationsTest() {
    logger.info("######### testLocal ###########");

    SolrServletRequest req = areq(/*from   ww  w  .ja  v  a 2s  .c o  m*/
            params("q", "name:long", "qt", "/afts", "start", "0", "rows", "5", HighlightParams.HIGHLIGHT,
                    "true", HighlightParams.Q, "long", HighlightParams.FIELDS, "name,title",
                    "f.title." + HighlightParams.SIMPLE_PRE, "(", "f.title." + HighlightParams.SIMPLE_POST, ")",
                    "f.name." + HighlightParams.SIMPLE_PRE, "[", "f.name." + HighlightParams.SIMPLE_POST, "]",
                    HighlightParams.SIMPLE_PRE, "{", HighlightParams.SIMPLE_POST, "}"),
            "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");
    assertQ(req, "*[count(//lst[@name='highlighting']/lst/arr[@name='name'])=2]",
            "*[count(//lst[@name='highlighting']/lst/str[@name='DBID'])=2]",
            "//lst[@name='highlighting']/lst[1]/arr[@name='name']/str[.='some very [long] name']",
            "//lst[@name='highlighting']/lst[1]/arr[@name='title']/str[.='title1 is very (long)']",
            "//lst[@name='highlighting']/lst[2]/arr[@name='name']/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 highlightingRequiredFieldsTest() {
    logger.info("######### requireFieldMatch ###########");

    SolrServletRequest req = areq(//from  w  w  w .  j ava  2s.co m
            params("q", "name:long", "qt", "/afts", "start", "0", "rows", "5", HighlightParams.HIGHLIGHT,
                    "true", HighlightParams.Q, "long", HighlightParams.FIELDS, "name,title",
                    HighlightParams.SIMPLE_PRE, "{", HighlightParams.SIMPLE_POST, "}"),
            "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");

    assertQ(req, "*[count(//lst[@name='highlighting']/lst)=2]",
            "*[count(//lst[@name='highlighting']/lst/arr[@name='title'])=1]",
            "//lst[@name='highlighting']/lst[1]/arr[@name='title']/str[.='title1 is very {long}']");
    //add name

    req = areq(params("q", "name:long OR title:long", "qt", "/afts", "start", "0", "rows", "5",
            HighlightParams.HIGHLIGHT, "true", HighlightParams.Q, "title:long", HighlightParams.FIELDS,
            "name,title", HighlightParams.FIELD_MATCH, "true", HighlightParams.SIMPLE_PRE, "{",
            HighlightParams.SIMPLE_POST, "}"), "{\"locales\":[\"en\"], \"tenants\": [ \"\" ]}");

    assertQ(req, "*[count(//lst[@name='highlighting']/lst)=2]",
            "*[count(//lst[@name='highlighting']/lst/arr[@name='title'])=1]",
            "*[count(//lst[@name='highlighting']/lst/arr[@name='name'])=0]",
            "//lst[@name='highlighting']/lst[1]/arr[@name='title']/str[.='title1 is very {long}']");

    logger.info("######### MultiTerm ###########");
}

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 ava 2  s .  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.']");
}