You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ko...@apache.org on 2010/08/18 18:14:37 UTC
svn commit: r986773 - in /lucene/dev/trunk/solr: ./ example/solr/conf/
src/common/org/apache/solr/common/params/ src/java/org/apache/solr/highlight/
Author: koji
Date: Wed Aug 18 16:14:36 2010
New Revision: 986773
URL: http://svn.apache.org/viewvc?rev=986773&view=rev
Log:
SOLR-2049: add hl.multiValuedSeparatorChar for FVH
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/example/solr/conf/solrconfig.xml
lucene/dev/trunk/solr/src/common/org/apache/solr/common/params/HighlightParams.java
lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/ScoreOrderFragmentsBuilder.java
lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/SimpleFragmentsBuilder.java
lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/SolrFragmentsBuilder.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=986773&r1=986772&r2=986773&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Wed Aug 18 16:14:36 2010
@@ -226,6 +226,8 @@ New Features
* SOLR-2053: Add support for custom comparators in Solr spellchecker, per LUCENE-2479 (gsingers)
+* SOLR-2049: Add hl.multiValuedSeparatorChar for FastVectorHighlighter, per LUCENE-2603. (koji)
+
Optimizations
----------------------
Modified: lucene/dev/trunk/solr/example/solr/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/example/solr/conf/solrconfig.xml?rev=986773&r1=986772&r2=986773&view=diff
==============================================================================
--- lucene/dev/trunk/solr/example/solr/conf/solrconfig.xml (original)
+++ lucene/dev/trunk/solr/example/solr/conf/solrconfig.xml Wed Aug 18 16:14:36 2010
@@ -1032,7 +1032,13 @@
<fragListBuilder name="single" class="org.apache.solr.highlight.SingleFragListBuilder"/>
<!-- default tag FragmentsBuilder -->
- <fragmentsBuilder name="default" class="org.apache.solr.highlight.ScoreOrderFragmentsBuilder" default="true"/>
+ <fragmentsBuilder name="default" class="org.apache.solr.highlight.ScoreOrderFragmentsBuilder" default="true">
+ <!--
+ <lst name="defaults">
+ <str name="hl.multiValuedSeparatorChar">/</str>
+ </lst>
+ -->
+ </fragmentsBuilder>
<!-- multi-colored tag FragmentsBuilder -->
<fragmentsBuilder name="colored" class="org.apache.solr.highlight.ScoreOrderFragmentsBuilder">
Modified: lucene/dev/trunk/solr/src/common/org/apache/solr/common/params/HighlightParams.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/common/org/apache/solr/common/params/HighlightParams.java?rev=986773&r1=986772&r2=986773&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/common/org/apache/solr/common/params/HighlightParams.java (original)
+++ lucene/dev/trunk/solr/src/common/org/apache/solr/common/params/HighlightParams.java Wed Aug 18 16:14:36 2010
@@ -45,6 +45,7 @@ public interface HighlightParams {
public static final String USE_FVH = HIGHLIGHT + ".useFastVectorHighlighter";
public static final String TAG_PRE = HIGHLIGHT + ".tag.pre";
public static final String TAG_POST = HIGHLIGHT + ".tag.post";
+ public static final String MULTI_VALUED_SEPARATOR = HIGHLIGHT + ".multiValuedSeparatorChar";
// Formatter
public static final String SIMPLE = "simple";
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/ScoreOrderFragmentsBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/ScoreOrderFragmentsBuilder.java?rev=986773&r1=986772&r2=986773&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/ScoreOrderFragmentsBuilder.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/ScoreOrderFragmentsBuilder.java Wed Aug 18 16:14:36 2010
@@ -18,13 +18,17 @@
package org.apache.solr.highlight;
import org.apache.lucene.search.vectorhighlight.FragmentsBuilder;
+import org.apache.solr.common.params.SolrParams;
public class ScoreOrderFragmentsBuilder extends SolrFragmentsBuilder {
@Override
- protected FragmentsBuilder getFragmentsBuilder(String[] preTags,
- String[] postTags) {
- return new org.apache.lucene.search.vectorhighlight.ScoreOrderFragmentsBuilder( preTags, postTags );
+ protected FragmentsBuilder getFragmentsBuilder( SolrParams params,
+ String[] preTags, String[] postTags ) {
+ org.apache.lucene.search.vectorhighlight.ScoreOrderFragmentsBuilder sofb =
+ new org.apache.lucene.search.vectorhighlight.ScoreOrderFragmentsBuilder( preTags, postTags );
+ sofb.setMultiValuedSeparator( getMultiValuedSeparatorChar( params ) );
+ return sofb;
}
///////////////////////////////////////////////////////////////////////
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/SimpleFragmentsBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/SimpleFragmentsBuilder.java?rev=986773&r1=986772&r2=986773&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/SimpleFragmentsBuilder.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/SimpleFragmentsBuilder.java Wed Aug 18 16:14:36 2010
@@ -18,13 +18,17 @@
package org.apache.solr.highlight;
import org.apache.lucene.search.vectorhighlight.FragmentsBuilder;
+import org.apache.solr.common.params.SolrParams;
public class SimpleFragmentsBuilder extends SolrFragmentsBuilder {
@Override
- protected FragmentsBuilder getFragmentsBuilder(String[] preTags,
- String[] postTags) {
- return new org.apache.lucene.search.vectorhighlight.SimpleFragmentsBuilder( preTags, postTags );
+ protected FragmentsBuilder getFragmentsBuilder( SolrParams params,
+ String[] preTags, String[] postTags ) {
+ org.apache.lucene.search.vectorhighlight.SimpleFragmentsBuilder sfb =
+ new org.apache.lucene.search.vectorhighlight.SimpleFragmentsBuilder( preTags, postTags );
+ sfb.setMultiValuedSeparator( getMultiValuedSeparatorChar( params ) );
+ return sfb;
}
///////////////////////////////////////////////////////////////////////
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/SolrFragmentsBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/SolrFragmentsBuilder.java?rev=986773&r1=986772&r2=986773&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/SolrFragmentsBuilder.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/highlight/SolrFragmentsBuilder.java Wed Aug 18 16:14:36 2010
@@ -18,6 +18,7 @@
package org.apache.solr.highlight;
import org.apache.lucene.search.vectorhighlight.FragmentsBuilder;
+import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.DefaultSolrParams;
import org.apache.solr.common.params.HighlightParams;
import org.apache.solr.common.params.SolrParams;
@@ -39,7 +40,10 @@ public abstract class SolrFragmentsBuild
*/
public FragmentsBuilder getFragmentsBuilder(SolrParams params) {
numRequests++;
- return getFragmentsBuilder( getPreTags( params, null ), getPostTags( params, null ) );
+ if( defaults != null ) {
+ params = new DefaultSolrParams( params, defaults );
+ }
+ return getFragmentsBuilder( params, getPreTags( params, null ), getPostTags( params, null ) );
}
public String[] getPreTags( SolrParams params, String fieldName ){
@@ -66,5 +70,14 @@ public abstract class SolrFragmentsBuild
return tags;
}
- protected abstract FragmentsBuilder getFragmentsBuilder( String[] preTags, String[] postTags );
+ protected abstract FragmentsBuilder getFragmentsBuilder( SolrParams params, String[] preTags, String[] postTags );
+
+ protected char getMultiValuedSeparatorChar( SolrParams params ){
+ String separator = params.get( HighlightParams.MULTI_VALUED_SEPARATOR, " " );
+ if( separator.length() > 1 ){
+ throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,
+ HighlightParams.MULTI_VALUED_SEPARATOR + " parameter must be a char, but is \"" + separator + "\"" );
+ }
+ return separator.charAt( 0 );
+ }
}