List of usage examples for org.apache.solr.client.solrj SolrQuery setHighlightRequireFieldMatch
public SolrQuery setHighlightRequireFieldMatch(boolean flag)
From source file:com.liferay.portal.search.solr.internal.SolrIndexSearcher.java
License:Open Source License
protected void addHighlights(SolrQuery solrQuery, QueryConfig queryConfig) { if (!queryConfig.isHighlightEnabled()) { return;//from w ww. j a v a2 s .c o m } solrQuery.setHighlight(true); solrQuery.setHighlightFragsize(queryConfig.getHighlightFragmentSize()); solrQuery.setHighlightSimplePost(HighlightUtil.HIGHLIGHT_TAG_CLOSE); solrQuery.setHighlightSimplePre(HighlightUtil.HIGHLIGHT_TAG_OPEN); solrQuery.setHighlightSnippets(queryConfig.getHighlightSnippetSize()); for (String highlightFieldName : queryConfig.getHighlightFieldNames()) { addHighlightedField(solrQuery, queryConfig, highlightFieldName); } solrQuery.setHighlightRequireFieldMatch(queryConfig.isHighlightRequireFieldMatch()); }
From source file:com.liferay.portal.search.solr.SolrIndexSearcher.java
License:Open Source License
protected void addHighlights(SolrQuery solrQuery, QueryConfig queryConfig) { if (!queryConfig.isHighlightEnabled()) { return;/*from w ww .j a va 2 s . c o m*/ } solrQuery.setHighlight(true); solrQuery.setHighlightFragsize(queryConfig.getHighlightFragmentSize()); solrQuery.setHighlightSimplePost(SearchUtil.HIGHLIGHT_TAG_CLOSE); solrQuery.setHighlightSimplePre(SearchUtil.HIGHLIGHT_TAG_OPEN); solrQuery.setHighlightSnippets(queryConfig.getHighlightSnippetSize()); for (String highlightFieldName : queryConfig.getHighlightFieldNames()) { addHighlightedField(solrQuery, queryConfig, highlightFieldName); } solrQuery.setHighlightRequireFieldMatch(queryConfig.isHighlightRequireFieldMatch()); }
From source file:com.thinkbiganalytics.search.SolrSearchService.java
License:Apache License
private QueryResponse executeSearch(String query, int size, int start) { final String COLLECTION_LIST = "kylo-data," + SearchIndex.DATASOURCES; //Solr admin to configure beforehand final String ALL_FIELDS = "*"; final String BOLD_HIGHLIGHT_START = "<font style='font-weight:bold'>"; final String BOLD_HIGHLIGHT_END = "</font>"; SolrQuery solrQuery = new SolrQuery(); solrQuery.set("q", query); solrQuery.setRows(size);//from ww w . j av a 2 s . c om solrQuery.setStart(start); solrQuery.setParam("collection", COLLECTION_LIST); solrQuery.setHighlight(true); solrQuery.set("hl.fl", ALL_FIELDS); solrQuery.setHighlightSimplePre(BOLD_HIGHLIGHT_START); solrQuery.setHighlightSimplePost(BOLD_HIGHLIGHT_END); solrQuery.setHighlightRequireFieldMatch(false); try { return client.query("kylo-data", solrQuery); } catch (SolrServerException | IOException e) { throw new RuntimeException("Error encountered during search."); } }
From source file:eu.prestoprime.search.util.SolrQueryUtils.java
License:Open Source License
/** * Enable Solr's Highlighting Component on this query object. Search terms * in the map (as values) are only highlighted in the belonging search * fields./*from ww w . j a v a 2s . c om*/ * * @param solrQuery * @param fieldMap */ public static void enableHighlight(SolrQuery solrQuery, final Map<Schema.searchField, String> fieldMap) { // enable highlighting on Query solrQuery.setHighlight(true); // unlimited fragment size and hightlights solrQuery.setHighlightFragsize(0); StringBuilder logMsg = new StringBuilder("Enable highlighting on fields: "); // use these to set a start/end tag for highlights other than <em> // (defined in Solr Config) // solrQuery.setHighlightSimplePre(Constants.getString("HIGHLIGHT_PRE")); // solrQuery.setHighlightSimplePost(Constants.getString("HIGHLIGHT_POST")); if (fieldMap == null || fieldMap.isEmpty()) { // dismax query -> enable // highlighting on all // fields solrQuery.set("hl.highlightMultiTerm", true); for (searchField s : Schema.catchAll) { solrQuery.addHighlightField(s.getFieldName()); logMsg.append(s.getFieldName() + ", "); } LOGGER.debug(logMsg.toString().substring(0, logMsg.length() - 2)); } else { // highlight matching words in queried fields only solrQuery.set("hl.usePhraseHighlighter", true); solrQuery.setHighlightRequireFieldMatch(true); for (Entry<Schema.searchField, String> e : fieldMap.entrySet()) { // highlighting on range fields does no work. Just use text // fields if (e.getKey().getType().equals(Schema.FieldType.P4_TEXT) || e.getKey().getType().equals(Schema.FieldType.STRING)) { logMsg.append(e.getKey().getFieldName() + ", "); solrQuery.addHighlightField(e.getKey().getFieldName()); } } LOGGER.debug(logMsg.toString().substring(0, logMsg.length() - 2)); } }