public int freq() { // The frequency is valid in the base implementation return in.freq(); }
public int freq() { return current.freq(); }
public int freq() { // The frequency is valid in the base implementation return in.freq(); }
public int freq() { return current.freq(); }
public int freq() { return current.freq(); }
public int freq() { return in.freq(); } public boolean next() throws IOException { return in.next(); }
public int freq() { return in.freq(); } public boolean next() throws IOException { return in.next(); }
public int freq() { return in.freq(); } public boolean next() throws IOException { return in.next(); }
public int freq() { return termDocs.freq(); }
public int freq() { return termDocs.freq(); }
List docIds = // doc ids for documents that matched the query, // sorted in ascending order int totalFreq = 0; TermDocs termDocs = reader.termDocs(); termDocs.seek(new Term("my_field", "congress")); for (int id : docIds) { termDocs.skipTo(id); totalFreq += termDocs.freq(); }
public static Map<Integer, Integer> getFrequencies( final IndexReader reader, final Term term, final int[] docIDs) throws CorruptIndexException, IOException { final Map<Integer, Integer> id2freq = new HashMap<Integer, Integer>(); final TermDocs tds = reader.termDocs(term); if (tds != null) { for (final int docID : docIDs) { // Skip to the next docID tds.skipTo(docID); // Get its term frequency id2freq.put(docID, tds.freq()); } } return id2freq; }
public static long getTotalTermFreq(IndexReader reader, Term term) throws Exception { long totalTF = 0; TermDocs td = reader.termDocs(term); while (td.next()) { totalTF += td.freq(); } return totalTF; } }
IndexSearcher searcher = new IndexSearcher(directory); IndexReader reader = searcher.getIndexReader(); RegexTermEnum regexTermEnum = new RegexTermEnum(reader, new Term( "field", "d.*"), new JavaUtilRegexCapabilities()); do { System.out.println("Next:"); System.out.println("\tDoc Freq: " + regexTermEnum.docFreq()); if (regexTermEnum.term() != null) { System.out.println("\t"+regexTermEnum.term()); TermDocs td = reader.termDocs(regexTermEnum.term()); while(td.next()){ System.out.println("Found "+ td.freq()+" matches in document " + reader.document(td.doc()).get("name")); } } } while (regexTermEnum.next()); System.out.println("End.");
public boolean skipTo(int target) throws IOException { // first scan in cache for (pointer++; pointer < pointerMax; pointer++) { if (docs[pointer] >= target) { doc = docs[pointer]; return true; } } // not found in cache, seek underlying stream boolean result = termDocs.skipTo(target); if (result) { pointerMax = 1; pointer = 0; docs[pointer] = doc = termDocs.doc(); freqs[pointer] = termDocs.freq(); } else { doc = Integer.MAX_VALUE; } return result; }
/** Skips to the first match beyond the current whose document number is * greater than or equal to a given target. * <br>The implementation uses {@link TermDocs#skipTo(int)}. * @param target The target document number. * @return true iff there is such a match. */ public boolean skipTo(int target) throws IOException { // first scan in cache for (pointer++; pointer < pointerMax; pointer++) { if (docs[pointer] >= target) { doc = docs[pointer]; return true; } } // not found in cache, seek underlying stream boolean result = termDocs.skipTo(target); if (result) { pointerMax = 1; pointer = 0; docs[pointer] = doc = termDocs.doc(); freqs[pointer] = termDocs.freq(); } else { doc = Integer.MAX_VALUE; } return result; }
/** Skips to the first match beyond the current whose document number is * greater than or equal to a given target. * <br>The implementation uses {@link TermDocs#skipTo(int)}. * @param target The target document number. * @return true iff there is such a match. */ public boolean skipTo(int target) throws IOException { // first scan in cache for (pointer++; pointer < pointerMax; pointer++) { if (docs[pointer] >= target) { doc = docs[pointer]; return true; } } // not found in cache, seek underlying stream boolean result = termDocs.skipTo(target); if (result) { pointerMax = 1; pointer = 0; docs[pointer] = doc = termDocs.doc(); freqs[pointer] = termDocs.freq(); } else { doc = Integer.MAX_VALUE; } return result; }
/** Skips to the first match beyond the current whose document number is * greater than or equal to a given target. * <br>The implementation uses {@link TermDocs#skipTo(int)}. * @param target The target document number. * @return true iff there is such a match. */ public boolean skipTo(int target) throws IOException { // first scan in cache for (pointer++; pointer < pointerMax; pointer++) { if (docs[pointer] >= target) { doc = docs[pointer]; return true; } } // not found in cache, seek underlying stream boolean result = termDocs.skipTo(target); if (result) { pointerMax = 1; pointer = 0; docs[pointer] = doc = termDocs.doc(); freqs[pointer] = termDocs.freq(); } else { doc = Integer.MAX_VALUE; } return result; }
/** Skips to the first match beyond the current whose document number is * greater than or equal to a given target. * <br>The implementation uses {@link TermDocs#skipTo(int)}. * @param target The target document number. * @return true iff there is such a match. */ public boolean skipTo(int target) throws IOException { // first scan in cache for (pointer++; pointer < pointerMax; pointer++) { if (docs[pointer] >= target) { doc = docs[pointer]; return true; } } // not found in cache, seek underlying stream boolean result = termDocs.skipTo(target); if (result) { pointerMax = 1; pointer = 0; docs[pointer] = doc = termDocs.doc(); freqs[pointer] = termDocs.freq(); } else { doc = Integer.MAX_VALUE; } return result; }
public Explanation explain(int doc) throws IOException { TermQuery query = (TermQuery)weight.getQuery(); Explanation tfExplanation = new Explanation(); int tf = 0; while (pointer < pointerMax) { if (docs[pointer] == doc) tf = freqs[pointer]; pointer++; } if (tf == 0) { while (termDocs.next()) { if (termDocs.doc() == doc) { tf = termDocs.freq(); } } } termDocs.close(); tfExplanation.setValue(getSimilarity().tf(tf)); tfExplanation.setDescription("tf(termFreq("+query.getTerm()+")="+tf+")"); return tfExplanation; }