You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by eh...@apache.org on 2009/08/19 17:38:11 UTC

svn commit: r805844 - in /lucene/solr/trunk: CHANGES.txt src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java

Author: ehatcher
Date: Wed Aug 19 15:38:11 2009
New Revision: 805844

URL: http://svn.apache.org/viewvc?rev=805844&view=rev
Log:
SOLR-1372: Enhance FieldAnalysisRequestHandler to accept text from content stream

Modified:
    lucene/solr/trunk/CHANGES.txt
    lucene/solr/trunk/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java

Modified: lucene/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=805844&r1=805843&r2=805844&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Wed Aug 19 15:38:11 2009
@@ -269,7 +269,9 @@
 
 68. SOLR-1367: Added callback mechanism for converting DocList to SolrDocumentList in SolrPluginUtils (gsingers)
 
-68. SOLR-1275: Add expungeDeletes to DirectUpdateHandler2 (noble)
+69. SOLR-1275: Add expungeDeletes to DirectUpdateHandler2 (noble)
+
+70. SOLR-1372: Enhance FieldAnalysisRequestHandler to accept field value from content stream (ehatcher)
 
 
 Optimizations

Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java?rev=805844&r1=805843&r2=805844&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java Wed Aug 19 15:38:11 2009
@@ -24,14 +24,18 @@
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.common.util.ContentStream;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.schema.FieldType;
 import org.apache.solr.schema.IndexSchema;
+import org.apache.commons.io.IOUtils;
 
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.io.Reader;
+import java.io.IOException;
 
 /**
  * RequestHandler that provides much the same functionality as analysis.jsp.  Provides the ability to specify multiple
@@ -146,7 +150,28 @@
       analysisRequest.addFieldName(req.getSchema().getDefaultSearchFieldName());
     }
     analysisRequest.setQuery(solrParams.get(AnalysisParams.QUERY, solrParams.get(CommonParams.Q)));
-    analysisRequest.setFieldValue(solrParams.get(AnalysisParams.FIELD_VALUE));
+
+    String value = solrParams.get(AnalysisParams.FIELD_VALUE);
+
+    Iterable<ContentStream> streams = req.getContentStreams();
+    if (streams != null) {
+      // NOTE: Only the first content stream is currently processed
+      for (ContentStream stream : streams) {
+        Reader reader = null;
+        try {
+          reader = stream.getReader();
+          value = IOUtils.toString(reader);
+        } catch (IOException e) {
+          // do nothing, leave value set to the request parameter
+        }
+        finally {
+          IOUtils.closeQuietly(reader);
+        }
+        break;
+      }
+    }
+
+    analysisRequest.setFieldValue(value);
     analysisRequest.setShowMatch(solrParams.getBool(AnalysisParams.SHOW_MATCH, false));
     return analysisRequest;
   }