List of usage examples for org.apache.cassandra.db PartitionPosition kind
public Kind kind();
From source file:com.stratio.cassandra.lucene.IndexServiceWide.java
License:Apache License
/** {@inheritDoc} */ @Override//from ww w. j a v a 2 s.com public Optional<Query> query(DataRange dataRange) { // Extract data range data PartitionPosition startPosition = dataRange.startKey(); PartitionPosition stopPosition = dataRange.stopKey(); Token startToken = startPosition.getToken(); Token stopToken = stopPosition.getToken(); Optional<ClusteringPrefix> maybeStartClustering = KeyMapper.startClusteringPrefix(dataRange); Optional<ClusteringPrefix> maybeStopClustering = KeyMapper.stopClusteringPrefix(dataRange); // Prepare query builder BooleanQuery.Builder builder = new BooleanQuery.Builder(); // Add first partition filter maybeStartClustering.ifPresent(startClustering -> { DecoratedKey startKey = (DecoratedKey) startPosition; builder.add(keyMapper.query(startKey, startClustering, null, false, true), SHOULD); }); // Add token range filter boolean includeStart = startPosition.kind() == MIN_BOUND && !maybeStartClustering.isPresent(); boolean includeStop = stopPosition.kind() == MAX_BOUND && !maybeStopClustering.isPresent(); tokenMapper.query(startToken, stopToken, includeStart, includeStop).ifPresent(x -> builder.add(x, SHOULD)); // Add last partition filter maybeStopClustering.ifPresent(stopClustering -> { DecoratedKey stopKey = (DecoratedKey) stopPosition; builder.add(keyMapper.query(stopKey, null, stopClustering, true, false), SHOULD); }); // Return query, or empty if there are no restrictions BooleanQuery query = builder.build(); return query.clauses().isEmpty() ? Optional.empty() : Optional.of(query); }
From source file:com.stratio.cassandra.lucene.key.TokenMapper.java
License:Apache License
/** * Returns if the specified lower partition position must be included in a filtered range. * * @param position a {@link PartitionPosition} * @return {@code true} if {@code position} must be included, {@code false} otherwise *//* w w w . j a va 2 s . com*/ public boolean includeStart(PartitionPosition position) { return position.kind() == PartitionPosition.Kind.MIN_BOUND; }
From source file:com.stratio.cassandra.lucene.key.TokenMapper.java
License:Apache License
/** * Returns if the specified upper partition position must be included in a filtered range. * * @param position a {@link PartitionPosition} * @return {@code true} if {@code position} must be included, {@code false} otherwise *///from w w w . j av a2 s.c o m public boolean includeStop(PartitionPosition position) { return position.kind() == PartitionPosition.Kind.MAX_BOUND; }