protected IterablePosting joinPostings(IterablePosting[] ips) throws Exception { return new ORIterablePosting(ips); }
@Override protected void addPosting(Posting _p) { super.addPosting(_p); FieldPosting p = (FieldPosting)_p; final int[] thisPostingFieldFreqs = p.getFieldFrequencies(); for(int fi=0;fi<fieldCount;fi++) fieldFreqs[fi] += thisPostingFieldFreqs[fi]; }
@Override protected void firstPosting(Posting _p) { super.firstPosting(_p); FieldPosting p = (FieldPosting)_p; System.arraycopy(p.getFieldFrequencies(), 0, fieldFreqs, 0, fieldCount); System.arraycopy(p.getFieldLengths(), 0, fieldLens, 0, fieldCount); }
/** {@inheritDoc} */ @Override public int next() throws IOException { IterablePosting ip = postingQueue.poll(); if (ip == null) return id = IterablePosting.EOL; id = ip.getId(); firstPosting(ip); if (ip.next() != IterablePosting.EOL) postingQueue.add(ip); while(postingQueue.size() > 0 && postingQueue.peek().getId() == id) { ip = postingQueue.poll(); addPosting(ip); if (ip.next() != IterablePosting.EOL) postingQueue.add(ip); } return id; }
protected IterablePosting createFinalPostingIterator( List<IterablePosting> postings, List<EntryStatistics> pointers) throws IOException { return ORIterablePosting.mergePostings(postings.toArray(new IterablePosting[postings.size()])); }
/** {@inheritDoc} */ @Override public int next() throws IOException { IterablePosting ip = postingQueue.poll(); if (ip == null) return id = IterablePosting.EOL; id = ip.getId(); firstPosting(ip); if (ip.next() != IterablePosting.EOL) postingQueue.add(ip); while(postingQueue.size() > 0 && postingQueue.peek().getId() == id) { ip = postingQueue.poll(); addPosting(ip); if (ip.next() != IterablePosting.EOL) postingQueue.add(ip); } return id; }
protected IterablePosting createFinalPostingIterator( List<IterablePosting> postings, List<EntryStatistics> pointers) throws IOException { return ORIterablePosting.mergePostings(postings.toArray(new IterablePosting[postings.size()])); }
@Override public int next(int target) throws IOException { final IterablePosting ips[] = postingQueue.toArray(new IterablePosting[postingQueue.size()]); postingQueue.clear(); boolean OK = false; for(IterablePosting ip : ips) { if (ip.getId() >= target || (ip.next(target) != IterablePosting.EOL)) { postingQueue.add(ip); OK = true; } } if (! OK) return id = IterablePosting.EOL; IterablePosting ip = postingQueue.poll(); id = ip.getId(); firstPosting(ip); if (ip.next() != IterablePosting.EOL) postingQueue.add(ip); while(postingQueue.size() > 0 && postingQueue.peek().getId() == id) { ip = postingQueue.poll(); addPosting(ip); if (ip.next() != IterablePosting.EOL) postingQueue.add(ip); } return id; }
if (fields) return new FieldORIterablePosting(ips); return new ORIterablePosting(ips);
@Override protected void firstPosting(Posting _p) { super.firstPosting(_p); FieldPosting p = (FieldPosting)_p; System.arraycopy(p.getFieldFrequencies(), 0, fieldFreqs, 0, fieldCount); System.arraycopy(p.getFieldLengths(), 0, fieldLens, 0, fieldCount); }
@Override protected void addPosting(Posting _p) { super.addPosting(_p); FieldPosting p = (FieldPosting)_p; final int[] thisPostingFieldFreqs = p.getFieldFrequencies(); for(int fi=0;fi<fieldCount;fi++) fieldFreqs[fi] += thisPostingFieldFreqs[fi]; }
return Pair.of(entryStats, (IterablePosting) ORIterablePosting.mergePostings(_joinedPostings.toArray(new IterablePosting[_joinedPostings.size()])));
@Override public int next(int target) throws IOException { final IterablePosting ips[] = postingQueue.toArray(new IterablePosting[postingQueue.size()]); postingQueue.clear(); boolean OK = false; for(IterablePosting ip : ips) { if (ip.getId() >= target || (ip.next(target) != IterablePosting.EOL)) { postingQueue.add(ip); OK = true; } } if (! OK) return id = IterablePosting.EOL; IterablePosting ip = postingQueue.poll(); id = ip.getId(); firstPosting(ip); if (ip.next() != IterablePosting.EOL) postingQueue.add(ip); while(postingQueue.size() > 0 && postingQueue.peek().getId() == id) { ip = postingQueue.poll(); addPosting(ip); if (ip.next() != IterablePosting.EOL) postingQueue.add(ip); } return id; }
if (fields) return new FieldORIterablePosting(ips); return new ORIterablePosting(ips);
@Override protected void firstPosting(Posting p) { super.firstPosting(p); if (positions.size() > 30) { positions.clear(); positions.compact(); } else { positions.clear(); } positions.addAll(((BlockPosting)p).getPositions()); }
@Override protected void addPosting(Posting p) { super.addPosting(p); positions.addAll(((BlockPosting)p).getPositions()); }
return Pair.of(entryStats, (IterablePosting) ORIterablePosting.mergePostings(_joinedPostings.toArray(new IterablePosting[_joinedPostings.size()])));
@Override protected void firstPosting(Posting p) { super.firstPosting(p); if (positions.size() > 30) { positions.clear(); positions.compact(); } else { positions.clear(); } positions.addAll(((BlockPosting)p).getPositions()); }
@Override protected void addPosting(Posting p) { super.addPosting(p); positions.addAll(((BlockPosting)p).getPositions()); }