You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by eh...@apache.org on 2015/08/03 19:06:49 UTC

svn commit: r1693935 - in /lucene/dev/trunk/solr: CHANGES.txt core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java

Author: ehatcher
Date: Mon Aug  3 17:06:49 2015
New Revision: 1693935

URL: http://svn.apache.org/r1693935
Log:
SOLR-7799: Added includeIndexFieldFlags to /admin/luke

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1693935&r1=1693934&r2=1693935&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Mon Aug  3 17:06:49 2015
@@ -176,6 +176,9 @@ New Features
 
 * SOLR-5882: score local parameter for block join query parser {!parent} (Andrey Kudryavtsev, Mikhail Khludnev)
 
+* SOLR-7799: Added includeIndexFieldFlags (backwards compatible default is true) to /admin/luke.
+  When there are many fields in the index, setting this flag to false can dramatically speed up requests. (ehatcher)
+
 Bug Fixes
 ----------------------
 

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java?rev=1693935&r1=1693934&r2=1693935&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java Mon Aug  3 17:06:49 2015
@@ -98,6 +98,7 @@ public class LukeRequestHandler extends
   private static Logger log = LoggerFactory.getLogger(LukeRequestHandler.class);
 
   public static final String NUMTERMS = "numTerms";
+  public static final String INCLUDE_INDEX_FIELD_FLAGS = "includeIndexFieldFlags";
   public static final String DOC_ID = "docId";
   public static final String ID = "id";
   public static final int DEFAULT_COUNT = 10;
@@ -372,29 +373,25 @@ public class LukeRequestHandler extends
       }
 
       if(sfield != null && sfield.indexed() ) {
-        // In the pre-4.0 days, this did a veeeery expensive range query. But we can be much faster now,
-        // so just do this all the time.
-        StoredDocument doc = getFirstLiveDoc(terms, reader);
+        if (params.getBool(INCLUDE_INDEX_FIELD_FLAGS,true)) {
+          StoredDocument doc = getFirstLiveDoc(terms, reader);
 
-
-        if( doc != null ) {
-          // Found a document with this field
-          try {
-            StorableField fld = doc.getField( fieldName );
-            if( fld != null ) {
-              fieldMap.add("index", getFieldFlags(fld));
-            }
-            else {
-              // it is a non-stored field...
-              fieldMap.add("index", "(unstored field)");
+          if (doc != null) {
+            // Found a document with this field
+            try {
+              StorableField fld = doc.getField(fieldName);
+              if (fld != null) {
+                fieldMap.add("index", getFieldFlags(fld));
+              } else {
+                // it is a non-stored field...
+                fieldMap.add("index", "(unstored field)");
+              }
+            } catch (Exception ex) {
+              log.warn("error reading field: " + fieldName);
             }
           }
-          catch( Exception ex ) {
-            log.warn( "error reading field: "+fieldName );
-          }
+          fieldMap.add("docs", terms.getDocCount());
         }
-        fieldMap.add("docs", terms.getDocCount());
-
       }
       if (fields != null && (fields.contains(fieldName) || fields.contains("*"))) {
         getDetailedFieldInfo(req, fieldName, fieldMap);