You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2012/11/09 19:58:40 UTC

svn commit: r1407591 - /lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSimpleDocValuesFormat.java

Author: mikemccand
Date: Fri Nov  9 18:58:39 2012
New Revision: 1407591

URL: http://svn.apache.org/viewvc?rev=1407591&view=rev
Log:
add non-direct source for numbers

Modified:
    lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSimpleDocValuesFormat.java

Modified: lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSimpleDocValuesFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSimpleDocValuesFormat.java?rev=1407591&r1=1407590&r2=1407591&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSimpleDocValuesFormat.java (original)
+++ lucene/dev/branches/lucene4547/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSimpleDocValuesFormat.java Fri Nov  9 18:58:39 2012
@@ -25,6 +25,7 @@ import java.util.Locale;
 import java.util.Map;
 
 import org.apache.lucene.codecs.BinaryDocValuesConsumer;
+import org.apache.lucene.codecs.DocValuesArraySource;
 import org.apache.lucene.codecs.NumericDocValuesConsumer;
 import org.apache.lucene.codecs.PerDocProducer;
 import org.apache.lucene.codecs.SimpleDVConsumer;
@@ -243,14 +244,14 @@ public class SimpleTextSimpleDocValuesFo
       int minValue;
     };
 
+    final int maxDoc;
     final IndexInput data;
     final BytesRef scratch = new BytesRef();
     final Map<String,OneField> fields = new HashMap<String,OneField>();
     
     SimpleTextDocValuesReader(FieldInfos fieldInfos, Directory dir, SegmentInfo si, IOContext context) throws IOException {
       data = dir.openInput(IndexFileNames.segmentFileName(si.name, "", "dat"), context);
-
-      int maxDoc = si.getDocCount();
+      maxDoc = si.getDocCount();
       while(true) {
         readLine();
         if (scratch.equals(END)) {
@@ -317,6 +318,22 @@ public class SimpleTextSimpleDocValuesFo
       @Override
       public Source loadSource() throws IOException {
         // nocommit todo
+        DocValues.Type dvType = field.fieldInfo.getDocValuesType();
+        if (DocValues.isNumber(dvType)) {
+          Source source = loadDirectSource();
+          long[] values = new long[maxDoc];
+          for(int docID=0;docID<maxDoc;docID++) {
+            values[docID] = source.getInt(docID);
+          }
+          return DocValuesArraySource.forType(DocValues.Type.FIXED_INTS_64).newFromArray(values);
+        } else if (DocValues.isBytes(dvType)) {
+          // nocommit
+          return null;
+        } else if (DocValues.isSortedBytes(dvType)) {
+          // nocommit
+          return null;
+        }
+        // nocommit
         return null;
       }