示例#1
0
 public SimpleFlamdexWriter(
     String outputDirectory, long numDocs, boolean create, boolean writeBTreesOnClose)
     throws IOException {
   this.outputDirectory = outputDirectory;
   this.maxDocs = numDocs;
   this.writeBTreesOnClose = writeBTreesOnClose;
   if (create) {
     if (new File(outputDirectory).exists()) {
       deleteIndex(outputDirectory);
     } else if (!new File(outputDirectory).mkdirs()) {
       throw new IOException("unable to create directory at " + outputDirectory);
     }
     intFields = new HashSet<String>();
     stringFields = new HashSet<String>();
   } else {
     final FlamdexMetadata metadata = FlamdexMetadata.readMetadata(outputDirectory);
     if (metadata.numDocs != numDocs) {
       throw new IllegalArgumentException(
           "numDocs ("
               + numDocs
               + ") does not match numDocs in existing index ("
               + metadata.numDocs
               + ")");
     }
     intFields = new HashSet<String>(metadata.intFields);
     stringFields = new HashSet<String>(metadata.stringFields);
   }
 }