Java 类org.apache.lucene.index.CheckIndex 实例源码

项目:search    文件:TestUtil.java   
/** If failFast is true, then throw the first exception when index corruption is hit, instead of moving on to other fields/segments to
 *  look for any other corruption.  */
public static CheckIndex.Status checkIndex(Directory dir, boolean crossCheckTermVectors, boolean failFast) throws IOException {
  ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
  CheckIndex checker = new CheckIndex(dir);
  checker.setCrossCheckTermVectors(crossCheckTermVectors);
  checker.setFailFast(failFast);
  checker.setInfoStream(new PrintStream(bos, false, IOUtils.UTF_8), false);
  CheckIndex.Status indexStatus = checker.checkIndex(null);
  if (indexStatus == null || indexStatus.clean == false) {
    System.out.println("CheckIndex failed");
    System.out.println(bos.toString(IOUtils.UTF_8));
    throw new RuntimeException("CheckIndex failed");
  } else {
    if (LuceneTestCase.INFOSTREAM) {
      System.out.println(bos.toString(IOUtils.UTF_8));
    }
    return indexStatus;
  }
}
项目:NYBC    文件:_TestUtil.java   
public static CheckIndex.Status checkIndex(Directory dir, boolean crossCheckTermVectors) throws IOException {
  ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
  CheckIndex checker = new CheckIndex(dir);
  checker.setCrossCheckTermVectors(crossCheckTermVectors);
  checker.setInfoStream(new PrintStream(bos, false, "UTF-8"), false);
  CheckIndex.Status indexStatus = checker.checkIndex(null);
  if (indexStatus == null || indexStatus.clean == false) {
    System.out.println("CheckIndex failed");
    System.out.println(bos.toString("UTF-8"));
    throw new RuntimeException("CheckIndex failed");
  } else {
    if (LuceneTestCase.INFOSTREAM) {
      System.out.println(bos.toString("UTF-8"));
    }
    return indexStatus;
  }
}
项目:NYBC    文件:_TestUtil.java   
public static void checkReader(AtomicReader reader, boolean crossCheckTermVectors) throws IOException {
  ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
  PrintStream infoStream = new PrintStream(bos, false, "UTF-8");

  FieldNormStatus fieldNormStatus = CheckIndex.testFieldNorms(reader, infoStream);
  TermIndexStatus termIndexStatus = CheckIndex.testPostings(reader, infoStream);
  StoredFieldStatus storedFieldStatus = CheckIndex.testStoredFields(reader, infoStream);
  TermVectorStatus termVectorStatus = CheckIndex.testTermVectors(reader, infoStream, false, crossCheckTermVectors);
  DocValuesStatus docValuesStatus = CheckIndex.testDocValues(reader, infoStream);

  if (fieldNormStatus.error != null || 
    termIndexStatus.error != null ||
    storedFieldStatus.error != null ||
    termVectorStatus.error != null ||
    docValuesStatus.error != null) {
    System.out.println("CheckReader failed");
    System.out.println(bos.toString("UTF-8"));
    throw new RuntimeException("CheckReader failed");
  } else {
    if (LuceneTestCase.INFOSTREAM) {
      System.out.println(bos.toString("UTF-8"));
    }
  }
}
项目:Maskana-Gestor-de-Conocimiento    文件:_TestUtil.java   
public static CheckIndex.Status checkIndex(Directory dir, boolean crossCheckTermVectors) throws IOException {
  ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
  CheckIndex checker = new CheckIndex(dir);
  checker.setCrossCheckTermVectors(crossCheckTermVectors);
  checker.setInfoStream(new PrintStream(bos, false, "UTF-8"), false);
  CheckIndex.Status indexStatus = checker.checkIndex(null);
  if (indexStatus == null || indexStatus.clean == false) {
    System.out.println("CheckIndex failed");
    System.out.println(bos.toString("UTF-8"));
    throw new RuntimeException("CheckIndex failed");
  } else {
    if (LuceneTestCase.INFOSTREAM) {
      System.out.println(bos.toString("UTF-8"));
    }
    return indexStatus;
  }
}
项目:Maskana-Gestor-de-Conocimiento    文件:_TestUtil.java   
public static void checkReader(AtomicReader reader, boolean crossCheckTermVectors) throws IOException {
  ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
  PrintStream infoStream = new PrintStream(bos, false, "UTF-8");

  FieldNormStatus fieldNormStatus = CheckIndex.testFieldNorms(reader, infoStream);
  TermIndexStatus termIndexStatus = CheckIndex.testPostings(reader, infoStream);
  StoredFieldStatus storedFieldStatus = CheckIndex.testStoredFields(reader, infoStream);
  TermVectorStatus termVectorStatus = CheckIndex.testTermVectors(reader, infoStream, false, crossCheckTermVectors);
  DocValuesStatus docValuesStatus = CheckIndex.testDocValues(reader, infoStream);

  if (fieldNormStatus.error != null || 
    termIndexStatus.error != null ||
    storedFieldStatus.error != null ||
    termVectorStatus.error != null ||
    docValuesStatus.error != null) {
    System.out.println("CheckReader failed");
    System.out.println(bos.toString("UTF-8"));
    throw new RuntimeException("CheckReader failed");
  } else {
    if (LuceneTestCase.INFOSTREAM) {
      System.out.println(bos.toString("UTF-8"));
    }
  }
}
项目:Elasticsearch    文件:MultiDataPathUpgrader.java   
/**
 * Runs check-index on the target shard and throws an exception if it failed
 */
public void checkIndex(ShardPath targetPath) throws IOException {
    BytesStreamOutput os = new BytesStreamOutput();
    PrintStream out = new PrintStream(os, false, Charsets.UTF_8.name());
    try (Directory directory = new SimpleFSDirectory(targetPath.resolveIndex());
        final CheckIndex checkIndex = new CheckIndex(directory)) {
        checkIndex.setInfoStream(out);
        CheckIndex.Status status = checkIndex.checkIndex();
        out.flush();
        if (!status.clean) {
            logger.warn("check index [failure]\n{}", new String(os.bytes().toBytes(), Charsets.UTF_8));
            throw new IllegalStateException("index check failure");
        }
    }
}
项目:search    文件:TestUtil.java   
public static void checkReader(AtomicReader reader, boolean crossCheckTermVectors) throws IOException {
  ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
  PrintStream infoStream = new PrintStream(bos, false, IOUtils.UTF_8);

  reader.checkIntegrity();
  FieldNormStatus fieldNormStatus = CheckIndex.testFieldNorms(reader, infoStream, true);
  TermIndexStatus termIndexStatus = CheckIndex.testPostings(reader, infoStream, false, true);
  StoredFieldStatus storedFieldStatus = CheckIndex.testStoredFields(reader, infoStream, true);
  TermVectorStatus termVectorStatus = CheckIndex.testTermVectors(reader, infoStream, false, crossCheckTermVectors, true);
  DocValuesStatus docValuesStatus = CheckIndex.testDocValues(reader, infoStream, true);

  if (LuceneTestCase.INFOSTREAM) {
    System.out.println(bos.toString(IOUtils.UTF_8));
  }
}
项目:elasticsearch_my    文件:IndexShard.java   
private void doCheckIndex() throws IOException {
    long timeNS = System.nanoTime();
    if (!Lucene.indexExists(store.directory())) {
        return;
    }
    BytesStreamOutput os = new BytesStreamOutput();
    PrintStream out = new PrintStream(os, false, StandardCharsets.UTF_8.name());

    if ("checksum".equals(checkIndexOnStartup)) {
        // physical verification only: verify all checksums for the latest commit
        IOException corrupt = null;
        MetadataSnapshot metadata = snapshotStoreMetadata();
        for (Map.Entry<String, StoreFileMetaData> entry : metadata.asMap().entrySet()) {
            try {
                Store.checkIntegrity(entry.getValue(), store.directory());
                out.println("checksum passed: " + entry.getKey());
            } catch (IOException exc) {
                out.println("checksum failed: " + entry.getKey());
                exc.printStackTrace(out);
                corrupt = exc;
            }
        }
        out.flush();
        if (corrupt != null) {
            logger.warn("check index [failure]\n{}", os.bytes().utf8ToString());
            throw corrupt;
        }
    } else {
        // full checkindex
        try (CheckIndex checkIndex = new CheckIndex(store.directory())) {
            checkIndex.setInfoStream(out);
            CheckIndex.Status status = checkIndex.checkIndex();
            out.flush();

            if (!status.clean) {
                if (state == IndexShardState.CLOSED) {
                    // ignore if closed....
                    return;
                }
                logger.warn("check index [failure]\n{}", os.bytes().utf8ToString());
                if ("fix".equals(checkIndexOnStartup)) {
                    if (logger.isDebugEnabled()) {
                        logger.debug("fixing index, writing new segments file ...");
                    }
                    checkIndex.exorciseIndex(status);
                    if (logger.isDebugEnabled()) {
                        logger.debug("index fixed, wrote new segments file \"{}\"", status.segmentsFileName);
                    }
                } else {
                    // only throw a failure if we are not going to fix the index
                    throw new IllegalStateException("index check failure but can't fix it");
                }
            }
        }
    }

    if (logger.isDebugEnabled()) {
        logger.debug("check index [success]\n{}", os.bytes().utf8ToString());
    }

    recoveryState.getVerifyIndex().checkIndexTime(Math.max(0, TimeValue.nsecToMSec(System.nanoTime() - timeNS)));
}
项目:Elasticsearch    文件:IndexShard.java   
private void doCheckIndex() throws IOException {
    long timeNS = System.nanoTime();
    if (!Lucene.indexExists(store.directory())) {
        return;
    }
    BytesStreamOutput os = new BytesStreamOutput();
    PrintStream out = new PrintStream(os, false, Charsets.UTF_8.name());

    if ("checksum".equalsIgnoreCase(checkIndexOnStartup)) {
        // physical verification only: verify all checksums for the latest commit
        IOException corrupt = null;
        MetadataSnapshot metadata = store.getMetadata();
        for (Map.Entry<String, StoreFileMetaData> entry : metadata.asMap().entrySet()) {
            try {
                Store.checkIntegrity(entry.getValue(), store.directory());
                out.println("checksum passed: " + entry.getKey());
            } catch (IOException exc) {
                out.println("checksum failed: " + entry.getKey());
                exc.printStackTrace(out);
                corrupt = exc;
            }
        }
        out.flush();
        if (corrupt != null) {
            logger.warn("check index [failure]\n{}", new String(os.bytes().toBytes(), Charsets.UTF_8));
            throw corrupt;
        }
    } else {
        // full checkindex
        try (CheckIndex checkIndex = new CheckIndex(store.directory())) {
            checkIndex.setInfoStream(out);
            CheckIndex.Status status = checkIndex.checkIndex();
            out.flush();

            if (!status.clean) {
                if (state == IndexShardState.CLOSED) {
                    // ignore if closed....
                    return;
                }
                logger.warn("check index [failure]\n{}", new String(os.bytes().toBytes(), Charsets.UTF_8));
                if ("fix".equalsIgnoreCase(checkIndexOnStartup)) {
                    if (logger.isDebugEnabled()) {
                        logger.debug("fixing index, writing new segments file ...");
                    }
                    checkIndex.exorciseIndex(status);
                    if (logger.isDebugEnabled()) {
                        logger.debug("index fixed, wrote new segments file \"{}\"", status.segmentsFileName);
                    }
                } else {
                    // only throw a failure if we are not going to fix the index
                    throw new IllegalStateException("index check failure but can't fix it");
                }
            }
        }
    }

    if (logger.isDebugEnabled()) {
        logger.debug("check index [success]\n{}", new String(os.bytes().toBytes(), Charsets.UTF_8));
    }

    recoveryState.getVerifyIndex().checkIndexTime(Math.max(0, TimeValue.nsecToMSec(System.nanoTime() - timeNS)));
}
项目:search    文件:TestUtil.java   
/** This runs the CheckIndex tool on the index in.  If any
 *  issues are hit, a RuntimeException is thrown; else,
 *  true is returned. */
public static CheckIndex.Status checkIndex(Directory dir) throws IOException {
  return checkIndex(dir, true);
}
项目:search    文件:TestUtil.java   
public static CheckIndex.Status checkIndex(Directory dir, boolean crossCheckTermVectors) throws IOException {
  return checkIndex(dir, crossCheckTermVectors, false);
}
项目:NYBC    文件:_TestUtil.java   
/** This runs the CheckIndex tool on the index in.  If any
 *  issues are hit, a RuntimeException is thrown; else,
 *  true is returned. */
public static CheckIndex.Status checkIndex(Directory dir) throws IOException {
  return checkIndex(dir, true);
}
项目:Maskana-Gestor-de-Conocimiento    文件:_TestUtil.java   
/** This runs the CheckIndex tool on the index in.  If any
 *  issues are hit, a RuntimeException is thrown; else,
 *  true is returned. */
public static CheckIndex.Status checkIndex(Directory dir) throws IOException {
  return checkIndex(dir, true);
}