@Override protected void populateResults(ScoreDoc[] results, int howMany) { if (fillFields) { // avoid casting if unnecessary. FieldValueHitQueue<Entry> queue = (FieldValueHitQueue<Entry>) pq; for (int i = howMany - 1; i >= 0; i--) { results[i] = queue.fillFields(queue.pop()); } } else { for (int i = howMany - 1; i >= 0; i--) { Entry entry = pq.pop(); results[i] = new FieldDoc(entry.doc, entry.score); } } }
public List<IndexEntry> docs() { if (indexEntries == null) { indexEntries = new ArrayList<>(); IndexEntry entry; while ((entry = hitQueue.pop()) != null) { indexEntries.add(entry); } } return indexEntries; }
public TreeMultimap<DecoratedKey, IndexEntry> docsByRowKey() { if (indexEntries != null) throw new IllegalStateException("Hit queue already traversed"); if (indexEntryTreeMultiMap == null) { indexEntryTreeMultiMap = TreeMultimap.create(Ordering.natural(), new Comparator<IndexEntry>() { @Override public int compare(IndexEntry o1, IndexEntry o2) { return tableMapper.clusteringCType.compare(o1.clusteringKey, o2.clusteringKey); } }); IndexEntry entry; while ((entry = hitQueue.pop()) != null) { indexEntryTreeMultiMap.put(entry.decoratedKey, entry); } } return indexEntryTreeMultiMap; }
final void updateBottom(int slot, int doc, float score) throws IOException { hitQueue.pop(); bottom = getIndexEntry(slot, doc, score); hitQueue.add(bottom); }
private void sortQueue() { sortedGroups = new OneGroup[queue.size()]; for(int downTo=queue.size()-1;downTo>=0;downTo--) { sortedGroups[downTo] = queue.pop(); } }
@Override protected void populateResults(ScoreDoc[] results, int howMany) { if (fillFields) { // avoid casting if unnecessary. FieldValueHitQueue<Entry> queue = (FieldValueHitQueue<Entry>) pq; for (int i = howMany - 1; i >= 0; i--) { results[i] = queue.fillFields(queue.pop()); } } else { for (int i = howMany - 1; i >= 0; i--) { Entry entry = pq.pop(); results[i] = new FieldDoc(entry.doc, entry.score); } } }
@Override protected void populateResults(ScoreDoc[] results, int howMany) { if (fillFields) { // avoid casting if unnecessary. FieldValueHitQueue<Entry> queue = (FieldValueHitQueue<Entry>) pq; for (int i = howMany - 1; i >= 0; i--) { results[i] = queue.fillFields(queue.pop()); } } else { for (int i = howMany - 1; i >= 0; i--) { Entry entry = pq.pop(); results[i] = new FieldDoc(entry.doc, entry.score); } } }
@Override protected void populateResults(ScoreDoc[] results, int howMany) { if (fillFields) { // avoid casting if unnecessary. FieldValueHitQueue<Entry> queue = (FieldValueHitQueue<Entry>) pq; for (int i = howMany - 1; i >= 0; i--) { results[i] = queue.fillFields(queue.pop()); } } else { for (int i = howMany - 1; i >= 0; i--) { Entry entry = pq.pop(); results[i] = new FieldDoc(entry.doc, entry.score); } } }