org.hibernate.search.query.dsl.impl.ConnectedSpatialContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-search-engine Show documentation
Show all versions of hibernate-search-engine Show documentation
Core of the Object/Lucene mapper, query engine and index management
/*
* Hibernate Search, full-text search for your domain model
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or .
*/
package org.hibernate.search.query.dsl.impl;
import org.apache.lucene.search.Query;
import org.hibernate.search.query.dsl.SpatialContext;
import org.hibernate.search.query.dsl.SpatialMatchingContext;
import org.hibernate.search.query.dsl.Unit;
import org.hibernate.search.query.dsl.WithinContext;
/**
* @author Emmanuel Bernard
*/
public class ConnectedSpatialContext implements SpatialContext {
private final QueryBuildingContext queryContext;
private final QueryCustomizer queryCustomizer;
private final SpatialQueryContext spatialContext;
public ConnectedSpatialContext(QueryBuildingContext context) {
this.queryContext = context;
this.queryCustomizer = new QueryCustomizer();
//today we only do constant score for spatial queries
queryCustomizer.withConstantScore();
spatialContext = new SpatialQueryContext();
}
@Override
public SpatialMatchingContext onField(String fieldName) {
spatialContext.setCoordinatesField( fieldName );
return new ConnectedSpatialMatchingContext( queryContext, queryCustomizer, spatialContext );
}
@Override
public SpatialContext boostedTo(float boost) {
queryCustomizer.boostedTo( boost );
return this;
}
@Override
public SpatialContext withConstantScore() {
queryCustomizer.withConstantScore();
return this;
}
@Override
public SpatialContext filteredBy(Query filter) {
queryCustomizer.filteredBy( filter );
return this;
}
@Override
public WithinContext within(double distance, Unit unit) {
spatialContext.setRadius( distance, unit );
return new ConnectedWithinContext( this );
}
QueryBuildingContext getQueryContext() {
return queryContext;
}
QueryCustomizer getQueryCustomizer() {
return queryCustomizer;
}
SpatialQueryContext getSpatialContext() {
return spatialContext;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy