public void commitDeletes() throws IOException { ZoieIndexReader<R> reader = null; synchronized(this) { reader = openIndexReader(); if(reader == null) return; reader.incZoieRef(); } reader.commitDeletes(); reader.decZoieRef(); }
@Override public synchronized void decRef() throws IOException { super.decRef(); }
/** * The readers removed will also be decRef(). But the readers to be added will NOT get incRef(), * which means we assume the newly added ones have already been incRef(). * remove and add should be <b>disjoint</b> * @param remove the readers to be remove. This has to be disjoint from add. * @param add */ public synchronized void swapArchives(List<ZoieIndexReader<R>> remove, List<ZoieIndexReader<R>> add) { List<ZoieIndexReader<R>> archives = new LinkedList<ZoieIndexReader<R>>(add); if (!box._archives.containsAll(remove)) { log.error("swapArchives: potential sync issue. "); } archives.addAll(box._archives); archives.removeAll(remove); for(ZoieIndexReader<R> r : remove) { r.decZoieRef(); if (log.isDebugEnabled()) { log.debug("remove time " + r.directory() + " refCount: " + r.getRefCount()); } } Box<R, D> newbox = new Box<R, D>(archives, box._archiveZoies, box._retiree, box._actives, _decorator); box = newbox; }
oldDiskReader.decZoieRef(); diskIndexReader.incZoieRef(); _mem = mem;
public void markDeletes(LongSet delDocs) throws IOException { if(delDocs != null && delDocs.size() > 0) { ZoieIndexReader<R> reader = null; synchronized(this) { reader = openIndexReader(); if(reader == null) return; reader.incZoieRef(); reader.markDeletes(delDocs, _delDocs); } reader.decZoieRef(); } }
docstr += "reader: " + readerid + "\n"; ZoieIndexReader reader = readers.get(readerid); DocIDMapper idmapper = reader.getDocIDMaper(); try Collection fieldnames = reader.getFieldNames(FieldOption.ALL); String fieldnamess = Arrays.toString(fieldnames.toArray()); retstr += "fields: " + fieldnamess + "\n"; float score = hits.scoreDocs[i].score; Explanation exp = searcher.explain(q, docid); Document doc = reader.document(docid); long uid = reader.getUID(docid); docs = docs + "UID: " + formatter.format(uid) + "\ndocid(in reader): " + formatter.format(docid) + "\nscore: " + score + "\n\n"; docstr = docstr + "UID: " + formatter.format(uid) + "\ndocid(in reader): " + formatter.format(docid) + "\nscore: " + score + "\n" + doc + "\n" + exp + "\n\n";
public int getNumdocs() { ZoieIndexReader<R> reader = null; try { synchronized(this) { reader = openIndexReader(); if (reader == null) return 0; reader.incZoieRef(); } return reader.numDocs(); } catch(IOException e) { log.error(e.getMessage(), e); } finally { if (reader != null) reader.decZoieRef(); } return 0; }
DocIDMapper<?> idmapper = reader.getDocIDMaper(); int docid = idmapper.getDocID(UID); retstr += "docid(in reader): " + formatter.format(docid) + "\n"; continue; if (docid==ZoieIndexReader.DELETED_UID || reader.isDeleted(docid)) Document doc = reader.document(docid); retstr += doc + "\n";
} else reader = (ZoieIndexReader<R>) _currentReader.reopen(true); if (reader != _currentReader) reader.setDocIDMapper(mapper); _currentReader = reader; if (oldReader != null) ((ZoieIndexReader<?>) oldReader).decZoieRef();// .decRef();
if(reader == null) return; reader.incZoieRef(); DocIDMapper<?> idMapper = reader.getDocIDMaper(); LongIterator iter = delDocs.iterator(); reader.decZoieRef();
/** * Copy the given lists to have immutable behavior. * * @param archives * @param retiree * @param actives * @param decorator */ public Box(List<ZoieIndexReader<R>> archives, List<ZoieSystem<R, D>> archiveZoies, List<ZoieSystem<R, D>> retiree, List<ZoieSystem<R, D>> actives, IndexReaderDecorator<R> decorator) { _archives = new LinkedList<ZoieIndexReader<R>>(archives); _archiveZoies = new LinkedList<ZoieSystem<R, D>>(archiveZoies); _retiree = new LinkedList<ZoieSystem<R, D>>(retiree); _actives = new LinkedList<ZoieSystem<R, D>>(actives); _decorator = decorator; if (log.isDebugEnabled()) { for (ZoieIndexReader<R> r : _archives) { log.debug("archive " + r.directory() + " refCount: " + r.getRefCount()); } } }
if (reader != null) reader = reader.copy(); reader.setDelDocIds(); readers.add(reader); if (reader != null) reader = reader.copy(); reader.setDelDocIds(); readers.add(reader); if (reader != null) reader = reader.copy(); reader.setDelDocIds(); readers.add(reader);
public void returnIndexReaders(List<ZoieIndexReader<R>> readers) { for(ZoieIndexReader<R> r : readers) { // try // { r.decZoieRef();//.decRef(); // } catch (IOException e) // { // log.error("error when decRef on reader ", e); // } } }
@Override public DocIdSet getDocIdSet(IndexReader reader) throws IOException { if (reader instanceof ZoieIndexReader<?>) { return new UIDDocIdSet(_filteredIDs, ((ZoieIndexReader<?>)reader).getDocIDMaper()); } else { throw new IllegalArgumentException( "UIDFilter may only load from ZoieIndexReader instances"); } }
public static <R extends IndexReader> List<R> extractDecoratedReaders(List<ZoieIndexReader<R>> readerList) throws IOException { LinkedList<R> retList = new LinkedList<R>(); for (ZoieIndexReader<R> reader : readerList) { retList.addAll(reader.getDecoratedReaders()); } return retList; }
@Override protected void doClose() throws IOException { try{ super.doClose(); } finally{ for (ZoieSegmentReader<R> r : _subZoieReaders){ r.decRef(); } } }
reader.incZoieRef(); reader.decZoieRef(); if (writeReader!=null){ try{
public void close() { super.close(); if (_currentReader != null) { _currentReader.decZoieRef(); } if (_directory != null) { try { _directory.close(); if (_backingdir != null) FileUtil.rmDir(_backingdir); } catch (IOException e) { log.error(e); } } }
SimpleFSDirectory dir = (SimpleFSDirectory) reader.directory(); String path = dir.getDirectory().getName();