public static QueryConstraints createOptimalQuery( final Filter cqlFilter, final GeotoolsFeatureDataAdapter adapter, final Index index, final BasicQuery baseQuery) { return createOptimalQuery(cqlFilter, adapter, CompareOperation.INTERSECTS, index, baseQuery); }
public static QueryConstraints createOptimalQuery( final String cql, final GeotoolsFeatureDataAdapter adapter, final Index index, final BasicQuery baseQuery) throws CQLException { return createOptimalQuery(cql, adapter, CompareOperation.INTERSECTS, index, baseQuery); }
@Override public QueryConstraints createQueryConstraints( final DataTypeAdapter<?> adapter, final Index index) { final GeotoolsFeatureDataAdapter gtAdapter = IndexOptimizationUtils.unwrapGeotoolsFeatureDataAdapter(adapter); if (gtAdapter != null) { return createOptimalQuery(filter, gtAdapter, index); } LOGGER.error("Adapter is not a geotools feature adapter. Cannot apply CQL filter."); return null; }
public static QueryConstraints createOptimalQuery( final String cql, final GeotoolsFeatureDataAdapter adapter, final CompareOperation geoCompareOp, final Index index, final BasicQuery baseQuery) throws CQLException { final Filter cqlFilter = CQL.toFilter(cql); return createOptimalQuery(cqlFilter, adapter, geoCompareOp, index, baseQuery); }
components.getAdapter().getTypeName()).indexName(index.getName()).setAuthorizations( transaction.composeAuthorizations()).constraints( OptimalCQLQuery.createOptimalQuery( filter, components.getAdapter(),
@Override public CloseableIterator<SimpleFeature> query(final Index index, final BasicQuery query) { VectorAggregationQueryBuilder<Persistable, Long> bldr = (VectorAggregationQueryBuilder) VectorAggregationQueryBuilder.newBuilder().count( components.getAdapter().getTypeName()).indexName(index.getName()).setAuthorizations( transaction.composeAuthorizations()).constraints( OptimalCQLQuery.createOptimalQuery( filter, components.getAdapter(), index, query)); if (limit != null) { bldr = bldr.limit(limit); } final Long count = components.getDataStore().aggregate(bldr.build()); if (count != null) { this.count = count; } return null; } }
@Override public CloseableIterator<SimpleFeature> query(final Index index, final BasicQuery query) { VectorQueryBuilder bldr = VectorQueryBuilder.newBuilder().addTypeName( components.getAdapter().getTypeName()).indexName(index.getName()).setAuthorizations( transaction.composeAuthorizations()).constraints( OptimalCQLQuery.createOptimalQuery( filter, components.getAdapter(), index, query)); if (limit != null) { bldr = bldr.limit(limit); } if (subsetRequested()) { bldr = bldr.subsetFields(components.getAdapter().getTypeName(), getSubset()); } return components.getDataStore().query(bldr.build()); }
@Override public CloseableIterator<SimpleFeature> query(final Index index, final BasicQuery query) { final VectorAggregationQueryBuilder<DistributedRenderOptions, DistributedRenderResult> bldr = (VectorAggregationQueryBuilder) VectorAggregationQueryBuilder.newBuilder().indexName( index.getName()).setAuthorizations(transaction.composeAuthorizations()); bldr.aggregate( components.getAdapter().getTypeName(), new DistributedRenderAggregation(renderOptions)).constraints( OptimalCQLQuery.createOptimalQuery(filter, components.getAdapter(), index, query)); final DistributedRenderResult result = components.getDataStore().aggregate(bldr.build()); return new CloseableIterator.Wrapper( Iterators.singletonIterator( SimpleFeatureBuilder.build( GeoWaveFeatureCollection.getDistributedRenderFeatureType(), new Object[] {result, renderOptions}, "render"))); } }