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 );
+  }
 }