List of usage examples for org.apache.lucene.index IndexReader document
public final Document document(int docID) throws IOException
n
th Document
in this index. From source file:org.alfresco.repo.search.impl.lucene.AbstractLuceneIndexerImpl.java
License:Open Source License
protected static Set<String> deletePrimary(Collection<String> nodeRefs, IndexReader reader, boolean delete) throws LuceneIndexException { Set<String> refs = new LinkedHashSet<String>(); for (String nodeRef : nodeRefs) { try {/*from ww w . j a v a 2 s . c om*/ TermDocs td = reader.termDocs(new Term("PRIMARYPARENT", nodeRef)); while (td.next()) { int doc = td.doc(); Document document = reader.document(doc); String[] ids = document.getValues("ID"); refs.add(ids[ids.length - 1]); if (delete) { reader.deleteDocument(doc); } } td.close(); } catch (IOException e) { throw new LuceneIndexException("Failed to delete node by primary parent for " + nodeRef, e); } } return refs; }
From source file:org.alfresco.repo.search.impl.lucene.AbstractLuceneIndexerImpl.java
License:Open Source License
protected static Set<String> deleteReference(Collection<String> nodeRefs, IndexReader reader, boolean delete) throws LuceneIndexException { Set<String> refs = new LinkedHashSet<String>(); for (String nodeRef : nodeRefs) { try {//from w ww .j a va2 s . c o m TermDocs td = reader.termDocs(new Term("PARENT", nodeRef)); while (td.next()) { int doc = td.doc(); Document document = reader.document(doc); String[] ids = document.getValues("ID"); refs.add(ids[ids.length - 1]); if (delete) { reader.deleteDocument(doc); } } td.close(); } catch (IOException e) { throw new LuceneIndexException("Failed to delete node by parent for " + nodeRef, e); } } return refs; }
From source file:org.alfresco.repo.search.impl.lucene.AbstractLuceneIndexerImpl.java
License:Open Source License
protected static Set<String> deleteContainerAndBelow(String nodeRef, IndexReader reader, boolean delete, boolean cascade) throws LuceneIndexException { Set<String> refs = new LinkedHashSet<String>(); try {/*from ww w . j a v a2 s.c om*/ if (delete) { reader.deleteDocuments(new Term("ID", nodeRef)); } refs.add(nodeRef); if (cascade) { TermDocs td = reader.termDocs(new Term("ANCESTOR", nodeRef)); while (td.next()) { int doc = td.doc(); Document document = reader.document(doc); String[] ids = document.getValues("ID"); refs.add(ids[ids.length - 1]); if (delete) { reader.deleteDocument(doc); } } td.close(); } } catch (IOException e) { throw new LuceneIndexException("Failed to delete container and below for " + nodeRef, e); } return refs; }
From source file:org.alfresco.repo.search.impl.lucene.AbstractLuceneIndexerImpl.java
License:Open Source License
protected boolean locateContainer(String nodeRef, IndexReader reader) { boolean found = false; try {/*from ww w .j a v a 2 s.com*/ TermDocs td = reader.termDocs(new Term("ID", nodeRef)); while (td.next()) { int doc = td.doc(); Document document = reader.document(doc); if (document.getField("ISCONTAINER") != null) { found = true; break; } } td.close(); } catch (IOException e) { throw new LuceneIndexException("Failed to delete container and below for " + nodeRef, e); } return found; }
From source file:org.alfresco.repo.search.impl.lucene.ADMLuceneIndexerImpl.java
License:Open Source License
private void addRootNodesToDeletionList() { IndexReader mainReader = null; try {/*from w ww . ja v a2 s . c o m*/ try { mainReader = getReader(); TermDocs td = mainReader.termDocs(new Term("ISROOT", "T")); while (td.next()) { int doc = td.doc(); Document document = mainReader.document(doc); String id = document.get("ID"); NodeRef ref = new NodeRef(id); deleteImpl(ref.toString(), getDeltaReader(), mainReader); } td.close(); } catch (IOException e) { throw new LuceneIndexException("Failed to delete all primary nodes", e); } } finally { if (mainReader != null) { try { mainReader.close(); } catch (IOException e) { throw new LuceneIndexException("Filed to close main reader", e); } } try { closeDeltaReader(); } catch (Exception e) { s_logger.warn("Failed to close delta reader", e); } } }
From source file:org.alfresco.repo.search.impl.lucene.ADMLuceneIndexerImpl.java
License:Open Source License
protected boolean deleteLeafOnly(String nodeRef, IndexReader reader, boolean delete) throws LuceneIndexException { boolean found = false; try {/*from w w w .j a va2 s . c o m*/ TermDocs td = reader.termDocs(new Term("LEAFID", nodeRef)); while (td.next()) { found = true; if (delete) { reader.deleteDocument(td.doc()); } else { break; } } td.close(); if (found) { return true; } // For backward compatibility, use old method of locating non-container docs td = reader.termDocs(new Term("ID", nodeRef)); while (td.next()) { int doc = td.doc(); Document document = reader.document(doc); // Exclude all containers except the root (which is also a node!) Field path = document.getField("PATH"); if (path == null || path.stringValue().length() == 0) { found = true; if (delete) { reader.deleteDocument(doc); } else { break; } } } td.close(); } catch (IOException e) { throw new LuceneIndexException("Failed to delete container and below for " + nodeRef, e); } return found; }
From source file:org.alfresco.repo.search.impl.lucene.query.LeafScorer.java
License:Open Source License
private String getPathLinkId(IndexReader reader, int n) throws IOException { if (reader instanceof CachingIndexReader) { CachingIndexReader cachingIndexReader = (CachingIndexReader) reader; return cachingIndexReader.getPathLinkId(n); } else {/*from w ww. ja v a2 s .c o m*/ Document document = reader.document(n); Field[] fields = document.getFields("ID"); if (fields != null) { Field id = fields[fields.length - 1]; return (id == null) ? null : id.stringValue(); } else { return null; } } }
From source file:org.alfresco.repo.search.impl.lucene.query.LeafScorer.java
License:Open Source License
private String getIsCategory(IndexReader reader, int n) throws IOException { if (reader instanceof CachingIndexReader) { CachingIndexReader cachingIndexReader = (CachingIndexReader) reader; return cachingIndexReader.getIsCategory(n); } else {/*from w ww. jav a 2 s . c o m*/ Document document = reader.document(n); Field isCategory = document.getField("ISCATEGORY"); return (isCategory == null) ? null : isCategory.stringValue(); } }
From source file:org.alfresco.repo.search.impl.lucene.query.LeafScorer.java
License:Open Source License
private String getPath(IndexReader reader, int n) throws IOException { if (reader instanceof CachingIndexReader) { CachingIndexReader cachingIndexReader = (CachingIndexReader) reader; return cachingIndexReader.getPath(n); } else {/*from w ww .ja v a 2 s .com*/ Document document = reader.document(n); Field path = document.getField("PATH"); return (path == null) ? null : path.stringValue(); } }
From source file:org.alfresco.repo.search.impl.lucene.query.LeafScorer.java
License:Open Source License
private String getType(IndexReader reader, int n) throws IOException { if (reader instanceof CachingIndexReader) { CachingIndexReader cachingIndexReader = (CachingIndexReader) reader; return cachingIndexReader.getType(n); } else {//from w w w. j a va 2s . c o m Document document = reader.document(n); Field path = document.getField("TYPE"); return (path == null) ? null : path.stringValue(); } }