1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/consolelog-chinese_translation_of_elasticsearchjavaapi

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
GeoQueries.md 3.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
王斌 Отправлено 22.05.2019 09:50 3cfb745

地理位置查询

ES支持两种类型的地理位置数据:支持经纬度的 geo_point ,以及支持点、线、圆、多边形等的 geo_shape

geo_shape查询

  • 可以查询坐标与指定区域相交、不相交或包含的地理位置。

geo_bounding_box查询

  • 可以查询坐标在矩形区域的地理位置。

geo_distance查询

  • 可以查询指定坐标距离内的地理位置。

geo_polygon查询

  • 可以查询坐标在多边形范围内的地理位置。

GeoShape查询

查看Geo Shape Query

注意: geo_shape 类型使用 Spatial4JJTS 两种依赖:

<dependency>
    <groupId>org.locationtech.spatial4j</groupId>
    <artifactId>spatial4j</artifactId>
    <version>0.6</version>                        
</dependency>

<dependency>
    <groupId>com.vividsolutions</groupId>
    <artifactId>jts</artifactId>
    <version>1.13</version>                         
    <exclusions>
        <exclusion>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
        </exclusion>
    </exclusions>
</dependency>
// Import ShapeRelation and ShapeBuilder
import org.elasticsearch.common.geo.ShapeRelation;
import org.elasticsearch.common.geo.builders.ShapeBuilder;
GeoShapeQueryBuilder qb = geoShapeQuery(
        //字段
        "pin.location",                                      
        //区域
        ShapeBuilders.newMultiPoint(                         
                new CoordinatesBuilder()
            .coordinate(0, 0)
            .coordinate(0, 10)
            .coordinate(10, 10)
            .coordinate(10, 0)
            .coordinate(0, 0)
            .build()));
//关系可以是ShapeRelation.CONTAINS、ShapeRelation.WITHIN、ShapeRelation.INTERSECTS和ShapeRelation.DISJOINT
qb.relation(ShapeRelation.WITHIN);       
// Using pre-indexed shapes
GeoShapeQueryBuilder qb = geoShapeQuery(
            //字段
            "pin.location",                                  
            //包含预索引形状的文档ID
            "DEU",                                           
            //预索引形状的索引类型
            "countries");    
//关系
qb.relation(ShapeRelation.WITHIN)  
    //预索引形状所在的索引名,默认是shapes                          
    .indexedShapeIndex("shapes")  
    //包含预索引形状的指定路径,默认是shape                           
    .indexedShapePath("location"); 

GeoBoundingBox查询

查看Geo Bounding Box Query

//字段名
geoBoundingBoxQuery("pin.location")  
    //矩形左上角的坐标                        
    .setCorners(40.73, -74.1,   
                //矩形右上角的坐标
                40.717, -73.99); 

GeoDistance查询

查看Geo Distance Query

//字段名
geoDistanceQuery("pin.location")                             
    //中心点
    .point(40, -70)      
    //距离中心点的距离                                    
    .distance(200, DistanceUnit.KILOMETERS);  

GeoPolygon查询

查看Geo Polygon Query

List<GeoPoint> points = new ArrayList<GeoPoint>();           
points.add(new GeoPoint(40, -70));
points.add(new GeoPoint(30, -80));
points.add(new GeoPoint(20, -90));
geoPolygonQuery("pin.location", points); 

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/consolelog-chinese_translation_of_elasticsearchjavaapi.git
git@api.gitlife.ru:oschina-mirror/consolelog-chinese_translation_of_elasticsearchjavaapi.git
oschina-mirror
consolelog-chinese_translation_of_elasticsearchjavaapi
consolelog-chinese_translation_of_elasticsearchjavaapi
master