List of usage examples for org.apache.solr.common.params HighlightParams SNIPPETS
String SNIPPETS
To view the source code for org.apache.solr.common.params HighlightParams SNIPPETS.
Click Source Link
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']"); }