Here are the examples of the java api class org.apache.accumulo.core.client.ScannerBase taken from open source projects.
1. AccumuloTemporalIndexer#queryInstantInsideInterval()
Project: incubator-rya
File: AccumuloTemporalIndexer.java
File: AccumuloTemporalIndexer.java
/** * Get instances inside a given interval. * Returns after interval's beginning time, and before ending time, * exclusive (don't match the beginning and ending). */ @Override public CloseableIteration<Statement, QueryEvaluationException> queryInstantInsideInterval(TemporalInterval queryInterval, StatementContraints constraints) throws QueryEvaluationException { // get rows where the time is after the given interval's beginning time and before the ending time. final TemporalInterval theQueryInterval = queryInterval; Query query = new Query() { private final TemporalInterval queryInterval = theQueryInterval; @Override public Range getRange(KeyParts keyParts) { Text start = Range.followingPrefix(new Text(keyParts.getQueryKey(queryInterval.getHasBeginning()))); // <-- end specific logic Text endAt = new Text(keyParts.getQueryKey(queryInterval.getHasEnd())); //System.out.println("Scanning queryInstantInsideInterval: from excluding:" + KeyParts.toHumanString(start) + " up to:" + KeyParts.toHumanString(endAt)); return new Range(start, false, endAt, false); } }; ScannerBase scanner = query.doQuery(queryInterval.getHasBeginning(), constraints); return getContextIteratorWrapper(scanner, constraints.getContext()); }
2. AccumuloTemporalIndexer#queryInstantAfterInstant()
Project: incubator-rya
File: AccumuloTemporalIndexer.java
File: AccumuloTemporalIndexer.java
/** * get statements where the date object is after the given queryInstant. */ @Override public CloseableIteration<Statement, QueryEvaluationException> queryInstantAfterInstant(TemporalInstant queryInstant, StatementContraints constraints) throws QueryEvaluationException { Query query = new Query() { @Override public Range getRange(KeyParts keyParts) { // <-- specific logic Text start = Range.followingPrefix(keyParts.getQueryKey()); // no constraints // <-- specific logic Text endAt = null; if (// Yes, has constraints keyParts.constraintPrefix != null) endAt = Range.followingPrefix(keyParts.constraintPrefix); //System.out.println("Scanning queryInstantAfterInstant from after:" + KeyParts.toHumanString(start) + " up to:" + KeyParts.toHumanString(endAt)); return new Range(start, true, endAt, false); } }; ScannerBase scanner = query.doQuery(queryInstant, constraints); return getContextIteratorWrapper(scanner, constraints.getContext()); }
3. AccumuloTemporalIndexer#queryInstantBeforeInstant()
Project: incubator-rya
File: AccumuloTemporalIndexer.java
File: AccumuloTemporalIndexer.java
/** * get statements where the db row ID is BEFORE the given queryInstant. */ @Override public CloseableIteration<Statement, QueryEvaluationException> queryInstantBeforeInstant(TemporalInstant queryInstant, StatementContraints constraints) throws QueryEvaluationException { // get rows where the repository time is before the given time. Query query = new Query() { @Override public Range getRange(KeyParts keyParts) { Text start = null; if (// Yes, has constraints keyParts.constraintPrefix != null) // <-- start specific logic start = keyParts.constraintPrefix; else start = new Text(KeyParts.HASH_PREFIX_FOLLOWING); // <-- end specific logic Text endAt = keyParts.getQueryKey(); //System.out.println("Scanning queryInstantBeforeInstant: from:" + KeyParts.toHumanString(start) + " up to:" + KeyParts.toHumanString(endAt)); return new Range(start, true, endAt, false); } }; ScannerBase scanner = query.doQuery(queryInstant, constraints); return getContextIteratorWrapper(scanner, constraints.getContext()); }
4. AccumuloTemporalIndexer#queryInstantEqualsInstant()
Project: incubator-rya
File: AccumuloTemporalIndexer.java
File: AccumuloTemporalIndexer.java
/** * statements where the datetime is exactly the same as the queryInstant. */ @Override public CloseableIteration<Statement, QueryEvaluationException> queryInstantEqualsInstant(TemporalInstant queryInstant, StatementContraints constraints) throws QueryEvaluationException { // get rows where the repository time is equal to the given time in queryInstant. Query query = new Query() { @Override public Range getRange(KeyParts keyParts) { // <-- specific logic return Range.prefix(keyParts.getQueryKey()); } }; ScannerBase scanner = query.doQuery(queryInstant, constraints); // TODO currently context constraints are filtered on the client. return getContextIteratorWrapper(scanner, constraints.getContext()); }
5. AbstractAccumuloRowQuery#query()
Project: geowave
File: AbstractAccumuloRowQuery.java
File: AbstractAccumuloRowQuery.java
public CloseableIterator<T> query(final AccumuloOperations accumuloOperations, final double[] maxResolutionSubsamplingPerDimension, final AdapterStore adapterStore) { final ScannerBase scanner = getScanner(accumuloOperations, maxResolutionSubsamplingPerDimension, getScannerLimit()); if (scanner == null) { LOGGER.error("Unable to get a new scanner instance, getScanner returned null"); return null; } addScanIteratorSettings(scanner); return new CloseableIteratorWrapper<T>(new ScannerClosableWrapper(scanner), new EntryIteratorWrapper(adapterStore, index, scanner.iterator(), null, this.scanCallback)); }
6. AccumuloQuery#getScanner()
Project: geowave
File: AccumuloQuery.java
File: AccumuloQuery.java
protected ScannerBase getScanner(final AccumuloOperations accumuloOperations, final double[] maxResolutionSubsamplingPerDimension, final Integer limit) { final List<ByteArrayRange> ranges = getRanges(); final String tableName = StringUtils.stringFromBinary(index.getId().getBytes()); ScannerBase scanner; try { if (!isAggregation() && (ranges != null) && (ranges.size() == 1)) { scanner = accumuloOperations.createScanner(tableName, getAdditionalAuthorizations()); final ByteArrayRange r = ranges.get(0); if (r.isSingleValue()) { ((Scanner) scanner).setRange(Range.exact(new Text(r.getStart().getBytes()))); } else { ((Scanner) scanner).setRange(AccumuloUtils.byteArrayRangeToAccumuloRange(r)); } if ((limit != null) && (limit > 0) && (limit < ((Scanner) scanner).getBatchSize())) { // do allow the limit to be set to some enormous size. ((Scanner) scanner).setBatchSize(Math.min(1024, limit)); } } else { scanner = accumuloOperations.createBatchScanner(tableName, getAdditionalAuthorizations()); ((BatchScanner) scanner).setRanges(AccumuloUtils.byteArrayRangesToAccumuloRanges(ranges)); } if (maxResolutionSubsamplingPerDimension != null) { if (maxResolutionSubsamplingPerDimension.length != index.getIndexStrategy().getOrderedDimensionDefinitions().length) { LOGGER.warn("Unable to subsample for table '" + tableName + "'. Subsample dimensions = " + maxResolutionSubsamplingPerDimension.length + " when indexed dimensions = " + index.getIndexStrategy().getOrderedDimensionDefinitions().length); } else { final int cardinalityToSubsample = (int) Math.round(IndexUtils.getDimensionalBitsUsed(index.getIndexStrategy(), maxResolutionSubsamplingPerDimension) + (8 * index.getIndexStrategy().getByteOffsetFromDimensionalIndex())); final IteratorSetting iteratorSettings = new IteratorSetting(FixedCardinalitySkippingIterator.CARDINALITY_SKIPPING_ITERATOR_PRIORITY, FixedCardinalitySkippingIterator.CARDINALITY_SKIPPING_ITERATOR_NAME, FixedCardinalitySkippingIterator.class); iteratorSettings.addOption(FixedCardinalitySkippingIterator.CARDINALITY_SKIP_INTERVAL, Integer.toString(cardinalityToSubsample)); scanner.addScanIterator(iteratorSettings); } } } catch (final TableNotFoundException e) { LOGGER.warn("Unable to query table '" + tableName + "'. Table does not exist.", e); return null; } if ((adapterIds != null) && !adapterIds.isEmpty()) { for (final ByteArrayId adapterId : adapterIds) { scanner.fetchColumnFamily(new Text(adapterId.getBytes())); } } return scanner; }
7. AccumuloFilteredIndexQuery#query()
Project: geowave
File: AccumuloFilteredIndexQuery.java
File: AccumuloFilteredIndexQuery.java
@SuppressWarnings("rawtypes") public CloseableIterator<Object> query(final AccumuloOperations accumuloOperations, final AdapterStore adapterStore, final double[] maxResolutionSubsamplingPerDimension, final Integer limit) { if (!accumuloOperations.tableExists(StringUtils.stringFromBinary(index.getId().getBytes()))) { LOGGER.warn("Table does not exist " + StringUtils.stringFromBinary(index.getId().getBytes())); return new CloseableIterator.Empty(); } final ScannerBase scanner = getScanner(accumuloOperations, maxResolutionSubsamplingPerDimension, limit); if (scanner == null) { LOGGER.error("Could not get scanner instance, getScanner returned null"); return new CloseableIterator.Empty(); } addScanIteratorSettings(scanner); Iterator it = initIterator(adapterStore, scanner); if ((limit != null) && (limit > 0)) { it = Iterators.limit(it, limit); } return new CloseableIteratorWrapper(new ScannerClosableWrapper(scanner), it); }