mirror of https://github.com/apache/lucene.git
SOLR-11399: hl.fragsize was ignored when hl.bs.type=SEPARATOR
This commit is contained in:
parent
6fe7829d3e
commit
3b0f46b27d
|
@ -148,6 +148,9 @@ Bug Fixes
|
|||
* SOLR-11297: Message "Lock held by this virtual machine" during startup. Solr is trying to start some cores twice.
|
||||
(Luiz Armesto, Shawn Heisey, Erick Erickson)
|
||||
|
||||
* SOLR-11399: The UnifiedHighlighter was ignoring the hl.fragsize parameter when hl.bs.type=SEPARATOR
|
||||
(Marc Morissette via David Smiley)
|
||||
|
||||
|
||||
Optimizations
|
||||
----------------------
|
||||
|
|
|
@ -310,15 +310,19 @@ public class UnifiedSolrHighlighter extends SolrHighlighter implements PluginInf
|
|||
String type = params.getFieldParam(field, HighlightParams.BS_TYPE);
|
||||
if (fragsize == 0 || "WHOLE".equals(type)) { // 0 is special value; no fragmenting
|
||||
return new WholeBreakIterator();
|
||||
} else if ("SEPARATOR".equals(type)) {
|
||||
char customSep = parseBiSepChar(params.getFieldParam(field, HighlightParams.BS_SEP));
|
||||
return new CustomSeparatorBreakIterator(customSep);
|
||||
}
|
||||
String language = params.getFieldParam(field, HighlightParams.BS_LANGUAGE);
|
||||
String country = params.getFieldParam(field, HighlightParams.BS_COUNTRY);
|
||||
String variant = params.getFieldParam(field, HighlightParams.BS_VARIANT);
|
||||
Locale locale = parseLocale(language, country, variant);
|
||||
BreakIterator baseBI = parseBreakIterator(type, locale);
|
||||
|
||||
BreakIterator baseBI;
|
||||
if ("SEPARATOR".equals(type)) {
|
||||
char customSep = parseBiSepChar(params.getFieldParam(field, HighlightParams.BS_SEP));
|
||||
baseBI = new CustomSeparatorBreakIterator(customSep);
|
||||
} else {
|
||||
String language = params.getFieldParam(field, HighlightParams.BS_LANGUAGE);
|
||||
String country = params.getFieldParam(field, HighlightParams.BS_COUNTRY);
|
||||
String variant = params.getFieldParam(field, HighlightParams.BS_VARIANT);
|
||||
Locale locale = parseLocale(language, country, variant);
|
||||
baseBI = parseBreakIterator(type, locale);
|
||||
}
|
||||
|
||||
if (fragsize <= 1) { // no real minimum size
|
||||
return baseBI;
|
||||
|
|
|
@ -256,6 +256,9 @@ public class TestUnifiedSolrHighlighter extends SolrTestCaseJ4 {
|
|||
req("q", "text:document", "sort", "id asc", "hl", "true", "hl.bs.type", "SEPARATOR","hl.bs.separator","#","hl.fragsize", "-1"),
|
||||
"//lst[@name='highlighting']/lst[@name='104']/arr[@name='text']/str='While the other <em>document</em> contains the same #'");
|
||||
|
||||
assertQ("CUSTOM breakiterator with fragsize 70",
|
||||
req("q", "text:document", "sort", "id asc", "hl", "true", "hl.bs.type", "SEPARATOR","hl.bs.separator","#","hl.fragsize", "70"),
|
||||
"//lst[@name='highlighting']/lst[@name='103']/arr[@name='text']/str='This <em>document</em> contains # special characters, while the other <em>document</em> contains the same #'");
|
||||
}
|
||||
|
||||
public void testFragsize() {
|
||||
|
|
Loading…
Reference in New Issue