Example usage for org.apache.lucene.spatial.bbox BBoxStrategy newInstance

List of usage examples for org.apache.lucene.spatial.bbox BBoxStrategy newInstance

Introduction

In this page you can find the example usage for org.apache.lucene.spatial.bbox BBoxStrategy newInstance.

Prototype

public static BBoxStrategy newInstance(SpatialContext ctx, String fieldNamePrefix) 

Source Link

Document

Creates a new BBoxStrategy instance that uses DoublePoint and DoublePoint#newRangeQuery

Usage

From source file:org.openspaces.spatial.spi.LuceneSpatialConfiguration.java

License:Open Source License

protected StrategyFactory createStrategyFactory(LuceneSpatialQueryExtensionProvider provider) {
    String strategyString = provider.getCustomProperty(STRATEGY, STRATEGY_DEFAULT);
    SupportedSpatialStrategy spatialStrategy = SupportedSpatialStrategy.byName(strategyString);

    switch (spatialStrategy) {
    case RecursivePrefixTree: {
        final SpatialPrefixTree geohashPrefixTree = createSpatialPrefixTree(provider, _spatialContext);
        String distErrPctValue = provider.getCustomProperty(DIST_ERR_PCT, DIST_ERR_PCT_DEFAULT);
        final double distErrPct = Double.valueOf(distErrPctValue);

        return new StrategyFactory(spatialStrategy) {
            @Override/*from   ww w. j a  va 2 s .co  m*/
            public SpatialStrategy createStrategy(String fieldName) {
                RecursivePrefixTreeStrategy strategy = new RecursivePrefixTreeStrategy(geohashPrefixTree,
                        fieldName);
                strategy.setDistErrPct(distErrPct);
                return strategy;
            }
        };
    }
    case BBox: {
        return new StrategyFactory(spatialStrategy) {
            @Override
            public SpatialStrategy createStrategy(String fieldName) {
                return BBoxStrategy.newInstance(_spatialContext, fieldName);
            }
        };
    }
    case Composite: {
        final SpatialPrefixTree geohashPrefixTree = createSpatialPrefixTree(provider, _spatialContext);
        String distErrPctValue = provider.getCustomProperty(DIST_ERR_PCT, DIST_ERR_PCT_DEFAULT);
        final double distErrPct = Double.valueOf(distErrPctValue);

        return new StrategyFactory(spatialStrategy) {
            @Override
            public SpatialStrategy createStrategy(String fieldName) {
                RecursivePrefixTreeStrategy recursivePrefixTreeStrategy = new RecursivePrefixTreeStrategy(
                        geohashPrefixTree, fieldName);
                recursivePrefixTreeStrategy.setDistErrPct(distErrPct);
                SerializedDVStrategy serializedDVStrategy = new SerializedDVStrategy(_spatialContext,
                        fieldName);
                return new CompositeSpatialStrategy(fieldName, recursivePrefixTreeStrategy,
                        serializedDVStrategy);
            }
        };
    }
    default:
        throw new IllegalStateException("Unsupported strategy: " + spatialStrategy);
    }
}