Example usage for org.apache.lucene.spatial.serialized SerializedDVStrategy SerializedDVStrategy

List of usage examples for org.apache.lucene.spatial.serialized SerializedDVStrategy SerializedDVStrategy

Introduction

In this page you can find the example usage for org.apache.lucene.spatial.serialized SerializedDVStrategy SerializedDVStrategy.

Prototype

public SerializedDVStrategy(SpatialContext ctx, String fieldName) 

Source Link

Document

Constructs the spatial strategy with its mandatory arguments.

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.jav  a2 s  .  c o  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);
    }
}