You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by er...@apache.org on 2012/02/08 23:31:07 UTC
svn commit: r1242152 - in /lucene/dev/branches/branch_3x/solr/core/src:
java/org/apache/solr/handler/admin/LukeRequestHandler.java
test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
Author: erick
Date: Wed Feb 8 22:31:07 2012
New Revision: 1242152
URL: http://svn.apache.org/viewvc?rev=1242152&view=rev
Log:
Fix for SOLR-3111 - fl param not working when more than one field was specified. Also honors * for "all fields"
Modified:
lucene/dev/branches/branch_3x/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
lucene/dev/branches/branch_3x/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
Modified: lucene/dev/branches/branch_3x/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java?rev=1242152&r1=1242151&r2=1242152&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java (original)
+++ lucene/dev/branches/branch_3x/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java Wed Feb 8 22:31:07 2012
@@ -101,9 +101,11 @@ public class LukeRequestHandler extends
// If no doc is given, show all fields and top terms
Set<String> fields = null;
- if( params.get( CommonParams.FL ) != null ) {
- fields = new TreeSet<String>(Arrays.asList(params.getParams( CommonParams.FL ) ) );
+ String fl = params.get(CommonParams.FL);
+ if (fl != null) {
+ fields = new TreeSet<String>(Arrays.asList(fl.split( "[,\\s]+" )));
}
+
if ( "schema".equals( params.get( "show" ))) {
numTerms = 0; // Abort any statistics gathering.
}
@@ -301,7 +303,7 @@ public class LukeRequestHandler extends
// Walk the term enum and keep a priority queue for each map in our set
SimpleOrderedMap<Object> finfo = new SimpleOrderedMap<Object>();
for (String fieldName : fieldNames) {
- if( fields != null && !fields.contains( fieldName ) ) {
+ if (fields != null && ! fields.contains(fieldName) && ! fields.contains("*")) {
continue; // if a field is specified, only them
}
SimpleOrderedMap<Object> f = new SimpleOrderedMap<Object>();
@@ -536,7 +538,7 @@ public class LukeRequestHandler extends
lastField = field;
// Skip fields not in fl list (if specified)
- if (fields != null && !fields.contains(field)) {
+ if (fields != null && !fields.contains(field) && ! fields.contains("*")) {
continue;
}
tiq = new TopTermQueue(numTerms + 1);
Modified: lucene/dev/branches/branch_3x/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java?rev=1242152&r1=1242151&r2=1242152&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java (original)
+++ lucene/dev/branches/branch_3x/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java Wed Feb 8 22:31:07 2012
@@ -18,7 +18,9 @@
package org.apache.solr.handler.admin;
import org.apache.solr.common.luke.FieldFlag;
+import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.Before;
import org.junit.Test;
import java.util.EnumSet;
@@ -63,37 +65,42 @@ public class LukeRequestHandlerTest exte
private void assertHistoBucket(int slot, int in) {
assertEquals("histobucket: " + in, slot, 32 - Integer.numberOfLeadingZeros(Math.max(0, in - 1)));
}
- @Test
- public void testLuke() {
+
+ @Before
+ public void before() {
assertU(adoc("id","SOLR1000", "name","Apache Solr",
- "solr_si", "10",
- "solr_sl", "10",
- "solr_sf", "10",
- "solr_sd", "10",
- "solr_s", "10",
- "solr_sI", "10",
- "solr_sS", "10",
- "solr_t", "10",
- "solr_tt", "10",
- "solr_b", "true",
- "solr_i", "10",
- "solr_l", "10",
- "solr_f", "10",
- "solr_d", "10",
- "solr_ti", "10",
- "solr_tl", "10",
- "solr_tf", "10",
- "solr_td", "10",
- "solr_pi", "10",
- "solr_pl", "10",
- "solr_pf", "10",
- "solr_pd", "10",
- "solr_dt", "2000-01-01T01:01:01Z",
- "solr_tdt", "2000-01-01T01:01:01Z",
- "solr_pdt", "2000-01-01T01:01:01Z"
+ "solr_si", "10",
+ "solr_sl", "10",
+ "solr_sf", "10",
+ "solr_sd", "10",
+ "solr_s", "10",
+ "solr_sI", "10",
+ "solr_sS", "10",
+ "solr_t", "10",
+ "solr_tt", "10",
+ "solr_b", "true",
+ "solr_i", "10",
+ "solr_l", "10",
+ "solr_f", "10",
+ "solr_d", "10",
+ "solr_ti", "10",
+ "solr_tl", "10",
+ "solr_tf", "10",
+ "solr_td", "10",
+ "solr_pi", "10",
+ "solr_pl", "10",
+ "solr_pf", "10",
+ "solr_pd", "10",
+ "solr_dt", "2000-01-01T01:01:01Z",
+ "solr_tdt", "2000-01-01T01:01:01Z",
+ "solr_pdt", "2000-01-01T01:01:01Z"
));
assertU(commit());
+ }
+ @Test
+ public void testLuke() {
+
// test that Luke can handle all of the field types
assertQ(req("qt","/admin/luke", "id","SOLR1000"));
@@ -140,5 +147,37 @@ public class LukeRequestHandlerTest exte
private static String getFieldXPathHistogram(String field) {
return "//lst[@name='fields']/lst[@name='"+field+"']/lst";
}
-
+
+ @Test
+ public void testFlParam() {
+ SolrQueryRequest req = req("qt", "/admin/luke", "fl", "solr_t solr_s");
+ try {
+ // First, determine that the two fields ARE there
+ String response = h.query(req);
+ assertNull(h.validateXPath(response,
+ getFieldXPathPrefix("solr_t") + "[@name='index']",
+ getFieldXPathPrefix("solr_s") + "[@name='index']"
+ ));
+
+ // Now test that the other fields are NOT there
+ for (String f : Arrays.asList("solr_ti",
+ "solr_td", "solr_pl", "solr_dt", "solr_b")) {
+
+ assertNotNull(h.validateXPath(response,
+ getFieldXPathPrefix(f) + "[@name='index']"));
+
+ }
+ // Insure * works
+ req = req("qt", "/admin/luke", "fl", "*");
+ response = h.query(req);
+ for (String f : Arrays.asList("solr_t", "solr_s", "solr_ti",
+ "solr_td", "solr_pl", "solr_dt", "solr_b")) {
+
+ assertNull(h.validateXPath(response,
+ getFieldXPathPrefix(f) + "[@name='index']"));
+ }
+ } catch (Exception e) {
+ fail("Caught unexpected exception " + e.getMessage());
+ }
+ }
}