Example usage for org.apache.lucene.index SegmentCommitInfo files

List of usage examples for org.apache.lucene.index SegmentCommitInfo files

Introduction

In this page you can find the example usage for org.apache.lucene.index SegmentCommitInfo files.

Prototype

public Collection<String> files() throws IOException 

Source Link

Document

Returns all files in use by this segment.

Usage

From source file:org.apache.sling.oakui.OakUIWebConsole.java

License:Apache License

private void analyseIndex(@Nonnull HttpServletRequest request, @Nonnull HttpServletResponse response,
        @Nonnull String index) throws JSONException, IOException {
    // load the commit info and get all the files.
    // Need a directory implementation that works off the location, OakDirectory isn't exported, so will have to re-create.
    NodeStore ns = getNodeStore();//w ww.  j a v  a 2  s .  c  om
    NodeState oakIndex = ns.getRoot().getChildNode("oak:index");
    NodeStoreDirectory nsDirectory = new NodeStoreDirectory(oakIndex, index);
    JSONObject out = new JSONObject();

    int sequence = 0;
    for (String file : getSegments(nsDirectory.listAll())) {
        if (file.startsWith("segments")) {
            JSONObject segmentDetail = new JSONObject();
            //FSDirectory fsDirectory = new SimpleFSDirectory(new File("/Users/ieb/Adobe/CQ/6.2/crx-quickstart/repository/index/lucene-1476792800724/data"));
            SegmentInfos segmentCommitInfos = new SegmentInfos();
            try {
                if ("segments.gen".equals(file)) {
                    // segments.gen is actually a pre v3 segments file, to get the current commit open without specifying the segments file.
                    segmentCommitInfos.read(nsDirectory);
                } else {
                    segmentCommitInfos.read(nsDirectory, file);
                }
                Iterator<SegmentCommitInfo> sci = segmentCommitInfos.iterator();
                JSONArray commits = new JSONArray();
                while (sci.hasNext()) {
                    SegmentCommitInfo sc = sci.next();
                    JSONObject commitInfo = new JSONObject();
                    JSONArray files = new JSONArray();
                    for (String f : sc.files()) {
                        files.put(f);
                    }
                    commitInfo.put("files", files);
                    commitInfo.put("delcount", sc.getDelCount());
                    commitInfo.put("delgen", sc.getDelGen());
                    commitInfo.put("hasDeletions", sc.hasDeletions());
                    commitInfo.put("hasFieldUpdates", sc.hasFieldUpdates());
                    commitInfo.put("sizeInBytes", sc.sizeInBytes());
                    commitInfo.put("fieldInfosGen", sc.getFieldInfosGen());
                    commitInfo.put("nextDelGen", sc.getNextDelGen());
                    commitInfo.put("version", sc.info.getVersion());
                    commitInfo.put("diagnostics", sc.info.getDiagnostics());
                    commitInfo.put("doccount", sc.info.getDocCount());
                    commitInfo.put("name", sc.info.name);
                    commitInfo.put("useCompoundFile", sc.info.getUseCompoundFile());

                    commits.put(commitInfo);
                }
                segmentDetail.put("commits", commits);
                segmentDetail.put("segment_sequence", sequence);
                segmentDetail.put("segment_name", file);
            } catch (CorruptIndexException e) {
                LOGGER.info(e.getMessage(), e);
                segmentDetail.put("corruption", e.getMessage());
            }
            out.put(file, segmentDetail);
            sequence++;
        }
    }
    response.setContentType("application/json; charset=utf-8");
    response.getWriter().println(out.toString(4));
}

From source file:org.codelibs.elasticsearch.common.lucene.Lucene.java

License:Apache License

/**
 * Returns an iterable that allows to iterate over all files in this segments info
 */// ww w .j a v  a 2  s.  c  om
public static Iterable<String> files(SegmentInfos infos) throws IOException {
    final List<Collection<String>> list = new ArrayList<>();
    list.add(Collections.singleton(infos.getSegmentsFileName()));
    for (SegmentCommitInfo info : infos) {
        list.add(info.files());
    }
    return Iterables.flatten(list);
}

From source file:org.eu.bitzone.Leia.java

License:Apache License

public void showDiagnostics(final Object segmentsTable) {
    final Object diagsTable = find("diagsTable");
    removeAll(diagsTable);/*  www  .j av a 2  s  .com*/
    final Object row = getSelectedItem(segmentsTable);
    if (row == null) {
        return;
    }
    final SegmentCommitInfo si = (SegmentCommitInfo) getProperty(row, "si");
    if (si == null) {
        showStatus("Missing SegmentInfoPerCommit???");
        return;
    }
    Map<String, String> map = si.info.attributes();
    if (map != null) {
        for (final Entry<String, String> e : map.entrySet()) {
            final Object r = create("row");
            add(diagsTable, r);
            Object cell = create("cell");
            setString(cell, "text", "A");
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getKey());
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getValue());
            add(r, cell);
        }
    }
    // separator
    // Object r1 = create("row");
    // add(diagsTable, r1);
    // Object c1 = create("cell");
    // setBoolean(c1, "enabled", false);
    // add(r1, c1);
    map = si.info.getDiagnostics();
    if (map != null) {
        for (final Entry<String, String> e : map.entrySet()) {
            final Object r = create("row");
            add(diagsTable, r);
            Object cell = create("cell");
            setString(cell, "text", "D");
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getKey());
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getValue());
            add(r, cell);
        }
    }
    // separator
    Object r1 = create("row");
    add(diagsTable, r1);
    Object c1 = create("cell");
    setBoolean(c1, "enabled", false);
    add(r1, c1);
    // codec info
    final Codec codec = si.info.getCodec();
    map = new LinkedHashMap<String, String>();
    map.put("codecName", codec.getName());
    map.put("codecClassName", codec.getClass().getName());
    map.put("docValuesFormat", codec.docValuesFormat().getClass().getName());
    map.put("fieldInfosFormat", codec.fieldInfosFormat().getClass().getName());
    map.put("liveDocsFormat", codec.liveDocsFormat().getClass().getName());
    map.put("normsFormat", codec.normsFormat().getClass().getName());
    map.put("postingsFormat",
            codec.postingsFormat().toString() + " " + codec.postingsFormat().getClass().getName());
    map.put("segmentInfoFormat", codec.segmentInfoFormat().getClass().getName());
    map.put("storedFieldsFormat", codec.storedFieldsFormat().getClass().getName());
    map.put("termVectorsFormat", codec.termVectorsFormat().getClass().getName());
    try {
        final List<String> files = new ArrayList<String>(si.files());
        Collections.sort(files);
        map.put("---files---", files.toString());
        if (si.info.getUseCompoundFile()) {
            final Directory d = new CompoundFileDirectory(dir,
                    IndexFileNames.segmentFileName(si.info.name, "", IndexFileNames.COMPOUND_FILE_EXTENSION),
                    IOContext.READ, false);
            files.clear();
            files.addAll(Arrays.asList(d.listAll()));
            d.close();
            Collections.sort(files);
            map.put("-CFS-files-", files.toString());
        }
    } catch (final Exception e) {
        e.printStackTrace();
        map.put("---files---", "Exception: " + e.toString());
    }
    for (final Entry<String, String> e : map.entrySet()) {
        final Object r = create("row");
        add(diagsTable, r);
        Object cell = create("cell");
        setString(cell, "text", "C");
        add(r, cell);
        cell = create("cell");
        setString(cell, "text", e.getKey());
        add(r, cell);
        cell = create("cell");
        setString(cell, "text", e.getValue());
        add(r, cell);
    }
    // fieldInfos
    try {
        final SegmentReader sr = new SegmentReader(si, 1, IOContext.READ);
        final FieldInfos fis = sr.getFieldInfos();
        map = new LinkedHashMap<String, String>();
        final List<String> flds = new ArrayList<String>(fis.size());
        for (final FieldInfo fi : fis) {
            flds.add(fi.name);
        }
        Collections.sort(flds);
        map.put("L---fields---", flds.toString());
        for (final String fn : flds) {
            final FieldInfo fi = fis.fieldInfo(fn);
            map.put("A" + fi.name, fi.attributes().toString());
        }
        map.put("F---flags----", "IdfpoPVNtxxDtxx");
        for (final String fn : flds) {
            final FieldInfo fi = fis.fieldInfo(fn);
            map.put("F" + fi.name, Util.fieldFlags(null, fi));
        }
        sr.close();
        // separator
        r1 = create("row");
        add(diagsTable, r1);
        c1 = create("cell");
        setBoolean(c1, "enabled", false);
        add(r1, c1);
        for (final Entry<String, String> e : map.entrySet()) {
            final Object r = create("row");
            add(diagsTable, r);
            Object cell = create("cell");
            setString(cell, "text", "F" + e.getKey().charAt(0));
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getKey().substring(1));
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getValue());
            if (e.getKey().startsWith("F")) {
                setFont(cell, courier);
            }
            add(r, cell);
        }
    } catch (final IOException e1) {
        e1.printStackTrace();
    }
}

From source file:org.getopt.luke.Luke.java

License:Apache License

public void showDiagnostics(Object segmentsTable) {
    Object diagsTable = find("diagsTable");
    removeAll(diagsTable);/*from w w w .j a  v a2  s  . com*/
    Object row = getSelectedItem(segmentsTable);
    if (row == null) {
        return;
    }
    SegmentCommitInfo si = (SegmentCommitInfo) getProperty(row, "si");
    if (si == null) {
        showStatus("Missing SegmentInfoPerCommit???");
        return;
    }
    Map<String, String> map = si.info.attributes();
    if (map != null) {
        for (Entry<String, String> e : map.entrySet()) {
            Object r = create("row");
            add(diagsTable, r);
            Object cell = create("cell");
            setString(cell, "text", "A");
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getKey());
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getValue());
            add(r, cell);
        }
    }
    // separator
    //    Object r1 = create("row");
    //    add(diagsTable, r1);
    //    Object c1 = create("cell");
    //    setBoolean(c1, "enabled", false);
    //    add(r1, c1);
    map = si.info.getDiagnostics();
    if (map != null) {
        for (Entry<String, String> e : map.entrySet()) {
            Object r = create("row");
            add(diagsTable, r);
            Object cell = create("cell");
            setString(cell, "text", "D");
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getKey());
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getValue());
            add(r, cell);
        }
    }
    // separator
    Object r1 = create("row");
    add(diagsTable, r1);
    Object c1 = create("cell");
    setBoolean(c1, "enabled", false);
    add(r1, c1);
    // codec info
    Codec codec = si.info.getCodec();
    map = new LinkedHashMap<String, String>();
    map.put("codecName", codec.getName());
    map.put("codecClassName", codec.getClass().getName());
    map.put("docValuesFormat", codec.docValuesFormat().getClass().getName());
    map.put("fieldInfosFormat", codec.fieldInfosFormat().getClass().getName());
    map.put("liveDocsFormat", codec.liveDocsFormat().getClass().getName());
    map.put("normsFormat", codec.normsFormat().getClass().getName());
    map.put("postingsFormat",
            codec.postingsFormat().toString() + " " + codec.postingsFormat().getClass().getName());
    map.put("segmentInfoFormat", codec.segmentInfoFormat().getClass().getName());
    map.put("storedFieldsFormat", codec.storedFieldsFormat().getClass().getName());
    map.put("termVectorsFormat", codec.termVectorsFormat().getClass().getName());
    try {
        List<String> files = new ArrayList<String>(si.files());
        Collections.sort(files);
        map.put("---files---", files.toString());
        if (si.info.getUseCompoundFile()) {
            Directory d = new CompoundFileDirectory(dir,
                    IndexFileNames.segmentFileName(si.info.name, "", IndexFileNames.COMPOUND_FILE_EXTENSION),
                    IOContext.READ, false);
            files.clear();
            files.addAll(Arrays.asList(d.listAll()));
            d.close();
            Collections.sort(files);
            map.put("-CFS-files-", files.toString());
        }
    } catch (Exception e) {
        e.printStackTrace();
        map.put("---files---", "Exception: " + e.toString());
    }
    for (Entry<String, String> e : map.entrySet()) {
        Object r = create("row");
        add(diagsTable, r);
        Object cell = create("cell");
        setString(cell, "text", "C");
        add(r, cell);
        cell = create("cell");
        setString(cell, "text", e.getKey());
        add(r, cell);
        cell = create("cell");
        setString(cell, "text", e.getValue());
        add(r, cell);
    }
    // fieldInfos
    try {
        SegmentReader sr = new SegmentReader(si, 1, IOContext.READ);
        FieldInfos fis = sr.getFieldInfos();
        map = new LinkedHashMap<String, String>();
        List<String> flds = new ArrayList<String>(fis.size());
        for (FieldInfo fi : fis) {
            flds.add(fi.name);
        }
        Collections.sort(flds);
        map.put("L---fields---", flds.toString());
        for (String fn : flds) {
            FieldInfo fi = fis.fieldInfo(fn);
            map.put("A" + fi.name, fi.attributes().toString());
        }
        map.put("F---flags----", "IdfpoPVNtxxDtxx");
        for (String fn : flds) {
            FieldInfo fi = fis.fieldInfo(fn);
            map.put("F" + fi.name, Util.fieldFlags(null, fi));
        }
        sr.close();
        // separator
        r1 = create("row");
        add(diagsTable, r1);
        c1 = create("cell");
        setBoolean(c1, "enabled", false);
        add(r1, c1);
        for (Entry<String, String> e : map.entrySet()) {
            Object r = create("row");
            add(diagsTable, r);
            Object cell = create("cell");
            setString(cell, "text", "F" + e.getKey().charAt(0));
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getKey().substring(1));
            add(r, cell);
            cell = create("cell");
            setString(cell, "text", e.getValue());
            if (e.getKey().startsWith("F")) {
                setFont(cell, courier);
            }
            add(r, cell);
        }
    } catch (IOException e1) {
        e1.printStackTrace();
    }
}