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