You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2013/01/25 18:06:23 UTC

svn commit: r1438594 - /lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/search/FieldCacheImpl.java

Author: jpountz
Date: Fri Jan 25 17:06:23 2013
New Revision: 1438594

URL: http://svn.apache.org/viewvc?rev=1438594&view=rev
Log:
FieldCacheImpl#getTermsIndex: throw an exception when the field is not indexed and has unsorted doc values.

Modified:
    lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/search/FieldCacheImpl.java

Modified: lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/search/FieldCacheImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/search/FieldCacheImpl.java?rev=1438594&r1=1438593&r2=1438594&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/search/FieldCacheImpl.java (original)
+++ lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/search/FieldCacheImpl.java Fri Jan 25 17:06:23 2013
@@ -1036,6 +1036,13 @@ class FieldCacheImpl implements FieldCac
       // per-thread by SegmentReader):
       return valuesIn;
     } else {
+      final FieldInfo info = reader.getFieldInfos().fieldInfo(field);
+      if (info != null && !info.isIndexed() && info.hasDocValues()) {
+        // we don't try to build a sorted instance from numeric/binary doc
+        // values because dedup can be very costly
+        throw new IllegalArgumentException("Cannot get terms index for \"" + field
+            + "\": it isn't indexed and doesn't have sorted doc values");
+      }
       return (SortedDocValues) caches.get(SortedDocValues.class).get(reader, new CacheKey(field, acceptableOverheadRatio), false);
     }
   }