Example usage for org.apache.lucene.index DirectoryReader isCurrent

List of usage examples for org.apache.lucene.index DirectoryReader isCurrent

Introduction

In this page you can find the example usage for org.apache.lucene.index DirectoryReader isCurrent.

Prototype

public abstract boolean isCurrent() throws IOException;

Source Link

Document

Check whether any new changes have occurred to the index since this reader was opened.

Usage

From source file:com.github.rnewson.couchdb.lucene.DatabaseIndexer.java

License:Apache License

public void info(final HttpServletRequest req, final HttpServletResponse resp)
        throws IOException, JSONException {
    final IndexState state = getState(req, resp);
    if (state == null)
        return;// www . j  ava2 s  .c om
    final DirectoryReader reader = state.borrowReader(true);
    try {
        final JSONObject result = new JSONObject();
        result.put("current", reader.isCurrent());
        result.put("disk_size", Utils.directorySize(reader.directory()));
        result.put("doc_count", reader.numDocs());
        result.put("doc_del_count", reader.numDeletedDocs());
        result.put("uuid", state.getUuid());
        result.put("digest", state.getDigest());
        result.put("update_seq", getUpdateSequence(reader.getIndexCommit().getUserData()));
        final JSONArray fields = new JSONArray();
        for (AtomicReaderContext leaf : reader.leaves()) {
            for (FieldInfo info : leaf.reader().getFieldInfos()) {
                if (info.name.startsWith("_")) {
                    continue;
                }
                if (info.isIndexed()) {
                    fields.put(info.name);
                }
            }
        }
        result.put("fields", fields);
        result.put("version", reader.getVersion());
        result.put("ref_count", reader.getRefCount());

        final JSONObject info = new JSONObject();
        info.put("code", 200);
        info.put("json", result);

        ServletUtils.setResponseContentTypeAndEncoding(req, resp);
        final Writer writer = resp.getWriter();
        try {
            writer.write(result.toString());
        } finally {
            writer.close();
        }
    } finally {
        state.returnReader(reader);
    }
}

From source file:org.apache.solr.handler.admin.LukeRequestHandler.java

License:Apache License

public static SimpleOrderedMap<Object> getIndexInfo(DirectoryReader reader) throws IOException {
    Directory dir = reader.directory();//from   w  w w  .  j a  va 2 s.  c  om
    SimpleOrderedMap<Object> indexInfo = new SimpleOrderedMap<Object>();

    indexInfo.add("numDocs", reader.numDocs());
    indexInfo.add("maxDoc", reader.maxDoc());
    indexInfo.add("deletedDocs", reader.maxDoc() - reader.numDocs());
    indexInfo.add("indexHeapUsageBytes", getIndexHeapUsed(reader));

    indexInfo.add("version", reader.getVersion()); // TODO? Is this different then: IndexReader.getCurrentVersion( dir )?
    indexInfo.add("segmentCount", reader.leaves().size());
    indexInfo.add("current", reader.isCurrent());
    indexInfo.add("hasDeletions", reader.hasDeletions());
    indexInfo.add("directory", dir);
    indexInfo.add("userData", reader.getIndexCommit().getUserData());
    String s = reader.getIndexCommit().getUserData().get(SolrIndexWriter.COMMIT_TIME_MSEC_KEY);
    if (s != null) {
        indexInfo.add("lastModified", new Date(Long.parseLong(s)));
    }
    return indexInfo;
}

From source file:org.apache.solr.handler.component.AlfrescoLukeRequestHandler.java

License:Open Source License

public static SimpleOrderedMap<Object> getIndexInfo(DirectoryReader reader) throws IOException {
    Directory dir = reader.directory();/* ww  w  .j  a  v a 2 s.c  o m*/
    SimpleOrderedMap<Object> indexInfo = new SimpleOrderedMap<>();

    indexInfo.add("numDocs", reader.numDocs());
    indexInfo.add("maxDoc", reader.maxDoc());
    indexInfo.add("deletedDocs", reader.maxDoc() - reader.numDocs());
    indexInfo.add("indexHeapUsageBytes", getIndexHeapUsed(reader));

    indexInfo.add("version", reader.getVersion()); // TODO? Is this
    // different then:
    // IndexReader.getCurrentVersion(
    // dir )?
    indexInfo.add("segmentCount", reader.leaves().size());
    indexInfo.add("current", reader.isCurrent());
    indexInfo.add("hasDeletions", reader.hasDeletions());
    indexInfo.add("directory", dir);
    indexInfo.add("userData", reader.getIndexCommit().getUserData());
    String s = reader.getIndexCommit().getUserData().get(SolrIndexWriter.COMMIT_TIME_MSEC_KEY);
    if (s != null) {
        indexInfo.add("lastModified", new Date(Long.parseLong(s)));
    }
    return indexInfo;
}