@Override public void query( IndexProgressor.NodeValueClient client, IndexOrder indexOrder, boolean needsValues, IndexQuery... query ) throws IndexNotApplicableKernelException { if ( indexOrder != IndexOrder.NONE ) { throw new UnsupportedOperationException( String.format( "This reader only have support for index order %s. Provided index order was %s.", IndexOrder.NONE, indexOrder ) ); } client.initialize( descriptor, new NodeValueIndexProgressor( query( query ), client ), query, indexOrder, needsValues ); }
@Override public void query( IndexProgressor.NodeValueClient client, IndexOrder indexOrder, boolean needsValues, IndexQuery... query ) throws IndexNotApplicableKernelException { try { BridgingIndexProgressor bridgingIndexProgressor = new BridgingIndexProgressor( client, descriptor.schema().getPropertyIds() ); indexReaders.parallelStream().forEach( reader -> { try { reader.query( bridgingIndexProgressor, indexOrder, needsValues, query ); } catch ( IndexNotApplicableKernelException e ) { throw new InnerException( e ); } } ); client.initialize( descriptor, bridgingIndexProgressor, query, indexOrder, needsValues ); } catch ( InnerException e ) { throw e.getCause(); } }
void startSeekForInitializedRange( IndexProgressor.NodeValueClient client, KEY treeKeyFrom, KEY treeKeyTo, IndexQuery[] query, IndexOrder indexOrder, boolean needFilter, boolean needsValues ) { if ( isEmptyRange( treeKeyFrom, treeKeyTo ) ) { client.initialize( descriptor, IndexProgressor.EMPTY, query, indexOrder, needsValues ); return; } try { RawCursor<Hit<KEY,VALUE>,IOException> seeker = makeIndexSeeker( treeKeyFrom, treeKeyTo, indexOrder ); IndexProgressor hitProgressor = getIndexProgressor( seeker, client, needFilter, query ); client.initialize( descriptor, hitProgressor, query, indexOrder, needsValues ); } catch ( IOException e ) { throw new UncheckedIOException( e ); } }
cursor.initialize( descriptor, multiProgressor, predicates, indexOrder, needsValues ); try
client.initialize( descriptor, multiProgressor, query, indexOrder, needsValues ); double[] from = geometryRangePredicate.from() == null ? null : geometryRangePredicate.from().coordinate(); double[] to = geometryRangePredicate.to() == null ? null : geometryRangePredicate.to().coordinate(); client.initialize( descriptor, IndexProgressor.EMPTY, query, indexOrder, needsValues );
cursor.initialize( descriptor, multiProgressor, predicates, indexOrder, needsValues ); for ( NativeIndexReader<?,NativeIndexValue> reader : this ) cursor.initialize( descriptor, IndexProgressor.EMPTY, predicates, indexOrder, needsValues ); cursor.initialize( descriptor, IndexProgressor.EMPTY, predicates, indexOrder, needsValues );
client.initialize( descriptor, multiProgressor, query, IndexOrder.NONE, false ); SpaceFillingCurve curve = spatial.getSpaceFillingCurve(); double[] from = rangePredicate.from() == null ? null : rangePredicate.from().coordinate(); client.initialize( descriptor, IndexProgressor.EMPTY, query, IndexOrder.NONE, false );
@Override void startSeekForInitializedRange( IndexProgressor.NodeValueClient client, SpatialIndexKey treeKeyFrom, SpatialIndexKey treeKeyTo, IndexQuery[] query, IndexOrder indexOrder, boolean needFilter, boolean needsValues ) { // Spatial does not support providing values assert !needsValues; if ( layout.compare( treeKeyFrom, treeKeyTo ) > 0 ) { client.initialize( descriptor, IndexProgressor.EMPTY, query, IndexOrder.NONE, false ); return; } try { RawCursor<Hit<SpatialIndexKey,VALUE>,IOException> seeker = makeIndexSeeker( treeKeyFrom, treeKeyTo, indexOrder ); IndexProgressor hitProgressor = new NativeHitIndexProgressor<>( seeker, client, openSeekers ); client.initialize( descriptor, hitProgressor, query, IndexOrder.NONE, false ); } catch ( IOException e ) { throw new UncheckedIOException( e ); } }
void startSeekForInitializedRange( IndexProgressor.NodeValueClient client, KEY treeKeyFrom, KEY treeKeyTo, IndexQuery[] query, IndexOrder indexOrder, boolean needFilter, boolean needsValues ) { if ( isEmptyRange( treeKeyFrom, treeKeyTo ) ) { client.initialize( descriptor, IndexProgressor.EMPTY, query, indexOrder, needsValues ); return; } try { RawCursor<Hit<KEY,VALUE>,IOException> seeker = makeIndexSeeker( treeKeyFrom, treeKeyTo, indexOrder ); IndexProgressor hitProgressor = getIndexProgressor( seeker, client, needFilter, query ); client.initialize( descriptor, hitProgressor, query, indexOrder, needsValues ); } catch ( IOException e ) { throw new UncheckedIOException( e ); } }
@Override public void query( IndexProgressor.NodeValueClient client, IndexOrder indexOrder, boolean needsValues, IndexQuery... query ) throws IndexNotApplicableKernelException { if ( indexOrder != IndexOrder.NONE ) { throw new UnsupportedOperationException( String.format( "This reader only have support for index order %s. Provided index order was %s.", IndexOrder.NONE, indexOrder ) ); } client.initialize( descriptor, new NodeValueIndexProgressor( query( query ), client ), query, indexOrder, needsValues ); }
@Override public void initialize( IndexDescriptor descriptor, IndexProgressor progressor, IndexQuery[] query, IndexOrder indexOrder, boolean needsValues ) { this.progressor = progressor; target.initialize( descriptor, this, query, indexOrder, needsValues ); }
cursor.initialize( descriptor, multiProgressor, predicates, indexOrder, false ); for ( NativeIndexReader<SpatialIndexKey,NativeIndexValue> reader : this ) cursor.initialize( descriptor, IndexProgressor.EMPTY, predicates, indexOrder, false ); cursor.initialize( descriptor, IndexProgressor.EMPTY, predicates, indexOrder, false );
client.initialize( descriptor, wrappedProgressor, query, indexOrder, needsValues );
cursor.initialize( descriptor, multiProgressor, predicates, indexOrder, needsValues ); try
client.initialize( descriptor, multiProgressor, query, indexOrder, needsValues ); double[] from = geometryRangePredicate.from() == null ? null : geometryRangePredicate.from().coordinate(); double[] to = geometryRangePredicate.to() == null ? null : geometryRangePredicate.to().coordinate(); client.initialize( descriptor, IndexProgressor.EMPTY, query, indexOrder, needsValues );
cursor.initialize( descriptor, multiProgressor, predicates, indexOrder, needsValues ); for ( NativeIndexReader<?,NativeIndexValue> reader : this ) cursor.initialize( descriptor, IndexProgressor.EMPTY, predicates, indexOrder, needsValues ); cursor.initialize( descriptor, IndexProgressor.EMPTY, predicates, indexOrder, needsValues );
client.initialize( descriptor, multiProgressor, query, IndexOrder.NONE, false ); SpaceFillingCurve curve = spatial.getSpaceFillingCurve(); double[] from = rangePredicate.from() == null ? null : rangePredicate.from().coordinate(); client.initialize( descriptor, IndexProgressor.EMPTY, query, IndexOrder.NONE, false );
@Override void startSeekForInitializedRange( IndexProgressor.NodeValueClient client, SpatialIndexKey treeKeyFrom, SpatialIndexKey treeKeyTo, IndexQuery[] query, IndexOrder indexOrder, boolean needFilter, boolean needsValues ) { // Spatial does not support providing values assert !needsValues; if ( layout.compare( treeKeyFrom, treeKeyTo ) > 0 ) { client.initialize( descriptor, IndexProgressor.EMPTY, query, IndexOrder.NONE, false ); return; } try { RawCursor<Hit<SpatialIndexKey,VALUE>,IOException> seeker = makeIndexSeeker( treeKeyFrom, treeKeyTo, indexOrder ); IndexProgressor hitProgressor = new NativeHitIndexProgressor<>( seeker, client, openSeekers ); client.initialize( descriptor, hitProgressor, query, IndexOrder.NONE, false ); } catch ( IOException e ) { throw new UncheckedIOException( e ); } }
@Override public void query( IndexProgressor.NodeValueClient client, IndexOrder indexOrder, boolean needsValues, IndexQuery... predicates ) throws IndexNotApplicableKernelException { Query query = toLuceneQuery( predicates ); client.initialize( descriptor, search( query ).getIndexProgressor( NODE_ID_KEY, client ), predicates, indexOrder, needsValues ); }
@Override public void initialize( IndexDescriptor descriptor, IndexProgressor progressor, IndexQuery[] query, IndexOrder indexOrder, boolean needsValues ) { this.progressor = progressor; target.initialize( descriptor, this, query, indexOrder, needsValues ); }