public void seek(TermEnum termEnum) throws IOException { if (termEnum instanceof LucandraTermEnum) { this.termEnum = (LucandraTermEnum) termEnum; } else { this.termEnum = (LucandraTermEnum) indexReader.terms(termEnum.term()); } termDocs = this.termEnum.getTermDocFreq(); if (logger.isDebugEnabled()) logger.debug("seeked out " + termDocs.length); docPosition = -1; }
@Override protected Object createValue(IndexReader reader, Entry entryKey) throws IOException { Entry entry = entryKey; String field = entry.field; if (reader.maxDoc() == reader.docFreq(new Term(field))) { return DocIdSet.EMPTY_DOCIDSET; } OpenBitSet res = new OpenBitSet(reader.maxDoc()); TermDocs termDocs = reader.termDocs(); TermEnum termEnum = reader.terms (new Term (field)); try { do { Term term = termEnum.term(); if (term==null || term.field() != field) break; termDocs.seek (termEnum); while (termDocs.next()) { res.fastSet(termDocs.doc()); } } while (termEnum.next()); } finally { termDocs.close(); termEnum.close(); } res.flip(0, reader.maxDoc()); return res; } }
Term term = termEnum.term(); if (term == null || term.field() != field) break;
Term term = termEnum.term(); if (term == null || term.field() != field) break;
Term term = termEnum.term(); if (term == null || term.field() != field) break;
Term term = termEnum.term(); if (term == null || term.field() != field) break;
public Term term() { if (termEnum==null) return null; return termEnum.term(); }
public Term term() { TermEnum terms = queue.peek(); if (terms != null) { return terms.term(); } return null; }
public Term term() { TermEnum terms = queue.peek(); if (terms != null) { return terms.term(); } return null; }
final boolean next() throws IOException { if (termEnum.next()) { term = termEnum.term(); return true; } else { term = null; return false; } }
final boolean next() throws IOException { if (termEnum.next()) { term = termEnum.term(); return true; } else { term = null; return false; } }
/** populate the list of categories by reading the values from the categoryField in the index */ protected void scanCategories() throws IOException { TermEnum te = indexReader.terms(new Term(categoryFieldName)); final Set<String> c = categories; do { if (!te.term().field().equals(categoryFieldName)) break; c.add(te.term().text()); } while (te.next()); log.info("Scanned " + c.size() + " categories from index"); }
protected float calculateWeight(Term term, IndexReader reader) throws IOException { //if a term is not in the index, then it's weight is 0 TermEnum termEnum = reader.terms(term); if (termEnum != null && termEnum.term() != null && termEnum.term().equals(term)) { return 1.0f / termEnum.docFreq(); } else { log.warn("Couldn't find doc freq for term {}", term); return 0; } }
@Override public String term() { sanityCheck(); return termEnum.term().text(); }
TermEnum te = reader.terms(new Term("field", "app")); List<Term> termList = new LinkedList<Term>(); while(te.next()) { Term t = te.term(); if (!t.field().equals("field") || !t.text().startsWith("app")) { break; } termList.add(t); } Term[] terms = termList.toArray(new Term[0]);
TermIterator() throws IOException { termsEnum = reader.terms(new Term(field, "")); Term term = termsEnum.term(); if (term == null || term.field() != field) { comp = null; } else { comp = BytesRef.getUTF8SortedAsUnicodeComparator(); } }
IndexReader reader = IndexReader.open(index); TermEnum terms = reader.terms(); Set<String> uniqueTerms = new HashSet<String>(); while (terms.next()) { final Term term = terms.term(); if (term.field().equals("field_name")) { uniqueTerms.add(term.text()); } }
private static Term getFirstTerm(Term t, SegmentReader reader) throws IOException { TermEnum terms = reader.terms(t); try { if (terms.next()) { return terms.term(); } return null; } finally { terms.close(); } }