mirror of
https://github.com/Alfresco/SearchServices.git
synced 2026-09-16 18:12:56 +00:00
SEARCH-466 highlightMultiTerm broken after upgrade
- sync 6.3 to 6.6 highlighter changes
This commit is contained in:
+10
-5
@@ -48,7 +48,6 @@ import org.apache.lucene.index.LeafReader;
|
||||
import org.apache.lucene.index.Terms;
|
||||
import org.apache.lucene.search.Query;
|
||||
import org.apache.lucene.search.highlight.Encoder;
|
||||
import org.apache.lucene.search.highlight.Fragmenter;
|
||||
import org.apache.lucene.search.highlight.Highlighter;
|
||||
import org.apache.lucene.search.highlight.InvalidTokenOffsetsException;
|
||||
import org.apache.lucene.search.highlight.OffsetLimitTokenFilter;
|
||||
@@ -69,7 +68,6 @@ import org.apache.solr.common.util.SimpleOrderedMap;
|
||||
import org.apache.solr.core.CoreContainer;
|
||||
import org.apache.solr.core.SolrCore;
|
||||
import org.apache.solr.highlight.DefaultSolrHighlighter;
|
||||
import org.apache.solr.highlight.SolrFragmenter;
|
||||
import org.apache.solr.highlight.SolrHighlighter;
|
||||
import org.apache.solr.request.SolrQueryRequest;
|
||||
import org.apache.solr.schema.IndexSchema;
|
||||
@@ -215,6 +213,14 @@ public class AlfrescoSolrHighlighter extends DefaultSolrHighlighter implements
|
||||
// key field
|
||||
return null;
|
||||
|
||||
boolean rewrite = query != null && !(Boolean.valueOf(params.get(HighlightParams.USE_PHRASE_HIGHLIGHTER, "true")) &&
|
||||
Boolean.valueOf(params.get(HighlightParams.HIGHLIGHT_MULTI_TERM, "true")));
|
||||
|
||||
if (rewrite) {
|
||||
query = query.rewrite(req.getSearcher().getIndexReader());
|
||||
}
|
||||
|
||||
|
||||
SolrIndexSearcher searcher = req.getSearcher();
|
||||
IndexSchema schema = searcher.getSchema();
|
||||
|
||||
@@ -356,7 +362,7 @@ public class AlfrescoSolrHighlighter extends DefaultSolrHighlighter implements
|
||||
|
||||
int maxCharsToAnalyze = params.getFieldInt(fieldName,
|
||||
HighlightParams.MAX_CHARS,
|
||||
Highlighter.DEFAULT_MAX_CHARS_TO_ANALYZE);
|
||||
DEFAULT_MAX_CHARS);
|
||||
if (maxCharsToAnalyze < 0) {//e.g. -1
|
||||
maxCharsToAnalyze = Integer.MAX_VALUE;
|
||||
}
|
||||
@@ -582,8 +588,7 @@ public class AlfrescoSolrHighlighter extends DefaultSolrHighlighter implements
|
||||
// note: seemingly redundant new String(...) releases memory to
|
||||
// the larger text. But is copying better?
|
||||
altList.add(len + altText.length() > alternateFieldLen ? encoder
|
||||
.encodeText(new String(altText.substring(0,
|
||||
alternateFieldLen - len))) : encoder
|
||||
.encodeText(altText.substring(0, alternateFieldLen - len)) : encoder
|
||||
.encodeText(altText));
|
||||
len += altText.length();
|
||||
if (len >= alternateFieldLen)
|
||||
|
||||
+2
-2
@@ -307,7 +307,7 @@ public class AlfrescoHighlighterTest extends AbstractAlfrescoSolrTests
|
||||
"*[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 ###########");
|
||||
|
||||
req = areq(params( "q", "name:long", "qt", "/afts", "start", "0", "rows", "5",
|
||||
@@ -326,7 +326,7 @@ public class AlfrescoHighlighterTest extends AbstractAlfrescoSolrTests
|
||||
"*[count(//lst[@name='highlighting']/lst/arr[@name='title'])=0]",
|
||||
"*[count(//lst[@name='highlighting']/lst/arr[@name='name'])=0]");
|
||||
|
||||
**/
|
||||
|
||||
logger.info("######### CamelCase ###########");
|
||||
|
||||
req = areq(params( "q", "name:cabbage", "qt", "/afts", "start", "0", "rows", "5",
|
||||
|
||||
Reference in New Issue
Block a user