Example usage for org.apache.lucene.spatial.prefix.tree QuadPrefixTree QuadPrefixTree

List of usage examples for org.apache.lucene.spatial.prefix.tree QuadPrefixTree QuadPrefixTree

Introduction

In this page you can find the example usage for org.apache.lucene.spatial.prefix.tree QuadPrefixTree QuadPrefixTree.

Prototype

public QuadPrefixTree(SpatialContext ctx, int maxLevels) 

Source Link

Usage

From source file:org.apache.blur.analysis.type.spatial.BaseSpatialFieldTypeDefinition.java

License:Apache License

protected SpatialPrefixTree getSpatialPrefixTree(String field, Map<String, String> properties) {
    String spatialPrefixTreeStr = properties.get(SPATIAL_PREFIX_TREE);
    if (spatialPrefixTreeStr == null) {
        throw new IllegalArgumentException(
                "Property [" + SPATIAL_PREFIX_TREE + "] is missing from type def for field [" + field + "]");
    } else if (spatialPrefixTreeStr.equals(GEOHASH_PREFIX_TREE)) {
        int maxLevels = getMaxLevels(properties);
        return new GeohashPrefixTree(_ctx, maxLevels);
    } else if (spatialPrefixTreeStr.equals(QUAD_PREFIX_TREE)) {
        int maxLevels = getMaxLevels(properties);
        return new QuadPrefixTree(_ctx, maxLevels);
    } else {/*from w w w  .  j a  v  a2  s  .  c  o  m*/
        throw new RuntimeException("Unknown spatialPrefixTreeStr [" + spatialPrefixTreeStr + "]");
    }
}

From source file:org.janusgraph.diskstorage.lucene.LuceneIndex.java

License:Apache License

private SpatialStrategy getSpatialStrategy(String key, KeyInformation ki) {
    SpatialStrategy strategy = spatial.get(key);
    final Mapping mapping = Mapping.getMapping(ki);
    final int maxLevels = ParameterType.INDEX_GEO_MAX_LEVELS.findParameter(ki.getParameters(),
            DEFAULT_GEO_MAX_LEVELS);/*from  ww w .java  2 s .  co  m*/
    final double distErrorPct = ParameterType.INDEX_GEO_DIST_ERROR_PCT.findParameter(ki.getParameters(),
            DEFAULT_GEO_DIST_ERROR_PCT);
    if (strategy == null) {
        synchronized (spatial) {
            if (!spatial.containsKey(key)) {
                //                    SpatialPrefixTree grid = new GeohashPrefixTree(ctx, GEO_MAX_LEVELS);
                //                    strategy = new RecursivePrefixTreeStrategy(grid, key);
                if (mapping == Mapping.DEFAULT) {
                    strategy = PointVectorStrategy.newInstance(ctx, key);
                } else {
                    final SpatialPrefixTree grid = new QuadPrefixTree(ctx, maxLevels);
                    strategy = new RecursivePrefixTreeStrategy(grid, key);
                    ((PrefixTreeStrategy) strategy).setDistErrPct(distErrorPct);
                }
                spatial.put(key, strategy);
            } else
                return spatial.get(key);
        }
    }
    return strategy;
}

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

License:Open Source License

private static SpatialPrefixTree createSpatialPrefixTree(LuceneSpatialQueryExtensionProvider provider,
        SpatialContext spatialContext) {
    String spatialPrefixTreeType = provider.getCustomProperty(SPATIAL_PREFIX_TREE, SPATIAL_PREFIX_TREE_DEFAULT);

    SupportedSpatialPrefixTree spatialPrefixTree = SupportedSpatialPrefixTree.byName(spatialPrefixTreeType);
    String maxLevelsStr = provider.getCustomProperty(SPATIAL_PREFIX_TREE_MAX_LEVELS,
            SPATIAL_PREFIX_TREE_MAX_LEVELS_DEFAULT);
    int maxLevels = Integer.valueOf(maxLevelsStr);

    switch (spatialPrefixTree) {
    case GeohashPrefixTree:
        return new GeohashPrefixTree(spatialContext, maxLevels);
    case QuadPrefixTree:
        return new QuadPrefixTree(spatialContext, maxLevels);
    default:/*from  w  ww.j  av a 2  s. c o m*/
        throw new RuntimeException("Unhandled spatial prefix tree type: " + spatialPrefixTree);
    }
}