You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2014/06/09 08:39:22 UTC
svn commit: r1601318 - in /lucene/dev/branches/branch_4x: ./ solr/
solr/CHANGES.txt solr/core/
solr/core/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java
solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java
Author: shalin
Date: Mon Jun 9 06:39:22 2014
New Revision: 1601318
URL: http://svn.apache.org/r1601318
Log:
SOLR-6149: Specifying the query value without any index value does not work in Analysis browser
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java
Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1601318&r1=1601317&r2=1601318&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Mon Jun 9 06:39:22 2014
@@ -90,6 +90,9 @@ Bug Fixes
* SOLR-6120: zkcli.sh should expand solr.war automatically instead of throwing
ClassNotFoundException. (sebastian badea, shalin)
+* SOLR-6149: Specifying the query value without any index value does not work in
+ Analysis browser. (Aman Tandon, shalin)
+
Other Changes
---------------------
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java?rev=1601318&r1=1601317&r2=1601318&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/FieldAnalysisRequestHandler.java Mon Jun 9 06:39:22 2014
@@ -19,6 +19,7 @@ package org.apache.solr.handler;
import org.apache.lucene.util.BytesRef;
import org.apache.solr.client.solrj.request.FieldAnalysisRequest;
+import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.AnalysisParams;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.SolrParams;
@@ -62,7 +63,7 @@ import java.util.Set;
* <tr>
* <td>analysis.fieldvalue</td>
* <td>string</td>
- * <td>yes</td>
+ * <td>no</td>
* <td>The text that will be analyzed. The analysis will mimic the index-time analysis.</td>
* <td>No</td>
* </tr>
@@ -85,7 +86,7 @@ import java.util.Set;
* </table>
* <p>Note that if neither analysis.fieldname and analysis.fieldtype is specified, then the default search field's
* analyzer is used.</p>
- *
+ * <p>Note that if one of analysis.value or analysis.query or q must be specified</p>
*
* @since solr 1.4
*/
@@ -139,7 +140,11 @@ public class FieldAnalysisRequestHandler
}
analysisRequest.setQuery(solrParams.get(AnalysisParams.QUERY, solrParams.get(CommonParams.Q)));
- String value = solrParams.required().get(AnalysisParams.FIELD_VALUE);
+ String value = solrParams.get(AnalysisParams.FIELD_VALUE);
+ if (analysisRequest.getQuery() == null && value == null) {
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
+ "One of analysis.value or q or analysis.query parameters must be specified");
+ }
Iterable<ContentStream> streams = req.getContentStreams();
if (streams != null) {
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java?rev=1601318&r1=1601317&r2=1601318&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java Mon Jun 9 06:39:22 2014
@@ -108,6 +108,37 @@ public class FieldAnalysisRequestHandler
request = handler.resolveAnalysisRequest(req);
assertNull(request.getQuery());
req.close();
+
+ // test absence of index-time value and presence of q
+ params.remove(AnalysisParams.FIELD_VALUE);
+ params.add(CommonParams.Q, "quick lazy");
+ request = handler.resolveAnalysisRequest(req);
+ assertEquals("quick lazy", request.getQuery());
+ req.close();
+
+ // test absence of index-time value and presence of query
+ params.remove(CommonParams.Q);
+ params.add(AnalysisParams.QUERY, "quick lazy");
+ request = handler.resolveAnalysisRequest(req);
+ assertEquals("quick lazy", request.getQuery());
+ req.close();
+
+ // must fail if all of q, analysis.query or analysis.value are absent
+ params.remove(CommonParams.Q);
+ params.remove(AnalysisParams.QUERY);
+ params.remove(AnalysisParams.FIELD_VALUE);
+ try {
+ request = handler.resolveAnalysisRequest(req);
+ fail("Analysis request must fail if all of q, analysis.query or analysis.value are absent");
+ } catch (SolrException e) {
+ if (e.code() != SolrException.ErrorCode.BAD_REQUEST.code) {
+ fail("Unexpected exception");
+ }
+ } catch (Exception e) {
+ fail("Unexpected exception");
+ }
+
+ req.close();
}
/**
@@ -380,20 +411,4 @@ public class FieldAnalysisRequestHandler
assertToken(tokenList.get(4), new TokenInfo("a", null, "word", 12, 13, 4, new int[]{3,4,4}, null, false));
assertToken(tokenList.get(5), new TokenInfo("test", null, "word", 14, 18, 5, new int[]{4,5,5}, null, false));
}
-
- public void testRequiredParamHandling() throws Exception {
- ModifiableSolrParams params = new ModifiableSolrParams();
- params.add(CommonParams.Q, "fox brown");
-
- SolrQueryRequest req = new LocalSolrQueryRequest(h.getCore(), params);
- try {
- FieldAnalysisRequest request = handler.resolveAnalysisRequest(req);
- fail("A request with no parameters should not have succeeded");
- } catch (NullPointerException npe) {
- fail("A request with no paramters should not result in NPE");
- } catch (SolrException e) {
- assertEquals("A request with no parameters should have returned a BAD_REQUEST error", e.code(),
- SolrException.ErrorCode.BAD_REQUEST.code);
- }
- }
}