@Override public long ordAt(int index) { if (cardinality > 0) { return values.ordAt(index); } else if (index == 0) { return missingOrd; } else { throw new IndexOutOfBoundsException(); } }
@Override public long ordAt(int index) { if (cardinality > 0) { return values.ordAt(index); } else if (index == 0) { return missingOrd; } else { throw new IndexOutOfBoundsException(); } }
@Override public BytesRef valueAt(int index) { return values.lookupOrd(values.ordAt(index)); }
@Override protected int pick(RandomAccessOrds values, int doc) { values.setDocument(doc); return values.cardinality() > 0 ? (int)values.ordAt(0) : -1; }
@Override protected int pick(RandomAccessOrds values, int doc) { values.setDocument(doc); return values.cardinality() > 0 ? (int)values.ordAt(0) : -1; }
@Override protected int pick(RandomAccessOrds values, int doc) { values.setDocument(doc); final int count = values.cardinality(); return count > 0 ? (int)values.ordAt(count - 1) : -1; }
@Override public int getOrd(int docID) { in.setDocument(docID); final int count = in.cardinality(); if (count == 0) { return -1; } else { return (int) in.ordAt((count-1) >>> 1); } }
@Override public int getOrd(int docID) { in.setDocument(docID); final int count = in.cardinality(); if (count == 0) { return -1; } else { return (int) in.ordAt(count-1); } }
@Override public int getOrd(int docID) { in.setDocument(docID); final int count = in.cardinality(); if (count == 0) { return -1; } else { return (int) in.ordAt(count >>> 1); } }
@Override public int getOrd(int docID) { in.setDocument(docID); final int count = in.cardinality(); if (count == 0) { return -1; } else { return (int) in.ordAt((count-1) >>> 1); } }
@Override public int getOrd(int docID) { in.setDocument(docID); final int count = in.cardinality(); if (count == 0) { return -1; } else { return (int) in.ordAt(count >>> 1); } }
@Override public void collect(int doc, long bucket) throws IOException { assert bucket == 0; globalOrds.setDocument(doc); final int numOrds = globalOrds.cardinality(); for (int i = 0; i < numOrds; i++) { final long globalOrd = globalOrds.ordAt(i); collectGlobalOrd(doc, globalOrd, sub); } } };
@Override protected int pick(RandomAccessOrds values, int doc) { values.setDocument(doc); final int count = values.cardinality(); return count > 0 ? (int)values.ordAt(count - 1) : -1; }
@Override public String get(int index) { BytesRef encoded = values.lookupOrd(values.ordAt(0)); InetAddress address = InetAddressPoint.decode( Arrays.copyOfRange(encoded.bytes, encoded.offset, encoded.offset + encoded.length)); return InetAddresses.toAddrString(address); }
@Override public String get(int index) { BytesRef encoded = values.lookupOrd(values.ordAt(0)); InetAddress address = InetAddressPoint.decode( Arrays.copyOfRange(encoded.bytes, encoded.offset, encoded.offset + encoded.length)); return InetAddresses.toAddrString(address); }
@Override public void collect(int doc, long bucket) throws IOException { assert bucket == 0; ords.setDocument(doc); final int numOrds = ords.cardinality(); for (int i = 0; i < numOrds; i++) { final long segmentOrd = ords.ordAt(i); segmentDocCounts.increment(segmentOrd + 1, 1); } } };
@Override public void collect(int doc, long bucket) throws IOException { assert bucket == 0; ords.setDocument(doc); final int numOrds = ords.cardinality(); for (int i = 0; i < numOrds; i++) { final long globalOrd = ords.ordAt(i); collectExistingBucket(sub, doc, globalOrd); } } };
@Override public void collect(int doc, long bucket) throws IOException { assert bucket == 0; segmentOrds.setDocument(doc); final int numOrds = segmentOrds.cardinality(); for (int i = 0; i < numOrds; i++) { final long segmentOrd = segmentOrds.ordAt(i); segmentDocCounts.increment(segmentOrd + 1, 1); } } };
@Override public void collect(int doc, long bucket) throws IOException { assert bucket == 0; ords.setDocument(doc); final int numOrds = ords.cardinality(); for (int i = 0; i < numOrds; i++) { final long globalOrd = ords.ordAt(i); collectExistingBucket(sub, doc, globalOrd); } } };
@Override public GeoPoint valueAt(int index) { final long ord = ords.ordAt(index); if (ord >= 0) { return point.reset(lat.get(ord), lon.get(ord)); } return point.reset(Double.NaN, Double.NaN); }