Elasticsearch java API (23)查询 DSL Geo查询
地理查询编辑
Elasticsearch支持两种类型的地理数据: geo_point纬度/经度对字段的支持,和 geo_shape领域,支持点、线、圆、多边形、多等。
这组查询:
geo_shape查询- 发现文档与几何图型相交,包含,或与指定的geo-shape不相交。
geo_bounding_box查询- 发现文档与geo-points落入指定的矩形。
geo_distance查询- 发现文档geo-points内指定的中心点的距离。
geo_distance_range查询- 就像
geo_point查询,但是范围是从一个指定的中心点的距离。 geo_polygon查询- 发现文档geo-points内指定的多边形。
geohash_cell查询- 找到的geo-points geohash相交的geohash指定点。
GeoShape查询编辑
看到Geo形状查询
注意: geo_shape类型使用 Spatial4J和 JTS,这两个都是可选的依赖性。因此您必须添加 Spatial4J和JTS到类路径中为了使用这种类型:
- <dependency>
- <groupId>com.spatial4j</groupId>
- <artifactId>spatial4j</artifactId>
- <version>0.4.1</version> <!--1-->
- </dependency>
- <dependency>
- <groupId>com.vividsolutions</groupId>
- <artifactId>jts</artifactId>
- <version>1.13</version> <!--2-->
- <exclusions>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
|
|
检查更新Maven中央 |
|
|
检查更新Maven中央 |
- // Import ShapeRelation and ShapeBuilder
- import org.elasticsearch.common.geo.ShapeRelation;
- import org.elasticsearch.common.geo.builders.ShapeBuilder;
- QueryBuilder qb = geoShapeQuery(
- "pin.location", //1
- ShapeBuilder.newMultiPoint() //2
- .point(0, 0)
- .point(0, 10)
- .point(10, 10)
- .point(10, 0)
- .point(0, 0),
- ShapeRelation.WITHIN); //3
|
|
场 |
|
|
形状 |
|
|
关系可以 |
- // Using pre-indexed shapes
- QueryBuilder qb = geoShapeQuery(
- "pin.location", //1
- "DEU", //2
- "countries", //3
- ShapeRelation.WITHIN) //4
- .indexedShapeIndex("shapes") //5
- .indexedShapePath("location"); //6
|
|
场 |
|
|
文档的ID包含预先索引的形状。 |
|
|
索引类型预先索引形状在哪里。 |
|
|
关系 |
|
|
预先索引的索引的名称,形状。默认为 形状. |
|
|
包含预先索引的字段指定为路径的形状。默认为 形状. |
地理边界框查询编辑
看到地理边界框查询
- QueryBuilder qb = geoBoundingBoxQuery("pin.location") //1
- .topLeft(40.73, -74.1) //2
- .bottomRight(40.717, -73.99); //3
|
|
场 |
|
|
边界框左上角点 |
|
|
边界框右下角点 |
- QueryBuilder qb = geoDistanceQuery("pin.location") //1
- .point(40, -70) //2
- .distance(200, DistanceUnit.KILOMETERS) //3
- .optimizeBbox("memory") //4
- .geoDistance(GeoDistance.ARC); //5
|
|
场 |
|
|
中心点 |
|
|
距离中心点 |
|
|
优化边界框: |
|
|
距离计算模式: |
- QueryBuilder qb = geoDistanceRangeQuery("pin.location") //1
- .point(40, -70) //2
- .from("200km") //3
- .to("400km") //4
- .includeLower(true) //5
- .includeUpper(false) //6
- .optimizeBbox("memory") //7
- .geoDistance(GeoDistance.ARC); //8
|
|
场 |
|
|
中心点 |
|
|
距离中心点开始 |
|
|
结束中心点的距离 |
|
|
包括意味着更低的价值 |
|
|
包括上意味着价值 |
|
|
优化边界框: |
|
|
距离计算模式: |
- QueryBuilder qb = geoPolygonQuery("pin.location") //1
- .addPoint(40, -70) //2
- .addPoint(30, -80) //3
- .addPoint(20, -90); //4
|
|
场 |
|
|
添加一个文档应落在多边形的点 |
Geohash细胞查询编辑
- QueryBuilder qb = geoHashCellQuery("pin.location", //1
- new GeoPoint(13.4080, 52.5186)) //2
- .neighbors(true) //3
- .precision(3); //4
|
|
场 |
|
|
点。也可以是一个散列 |
|
|
的 |
|
|
精度水平 |
Elasticsearch java API (23)查询 DSL Geo查询的更多相关文章
- Elasticsearch java api 常用查询方法QueryBuilder构造举例
转载:http://m.blog.csdn.net/u012546526/article/details/74184769 Elasticsearch java api 常用查询方法QueryBuil ...
- Elasticsearch java api 基本搜索部分详解
文档是结合几个博客整理出来的,内容大部分为转载内容.在使用过程中,对一些疑问点进行了整理与解析. Elasticsearch java api 基本搜索部分详解 ElasticSearch 常用的查询 ...
- Elasticsearch Java API 很全的整理
Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...
- 第08章 ElasticSearch Java API
本章内容 使用客户端对象(client object)连接到本地或远程ElasticSearch集群. 逐条或批量索引文档. 更新文档内容. 使用各种ElasticSearch支持的查询方式. 处理E ...
- Elasticsearch Java API深入详解
0.题记 之前Elasticsearch的应用比较多,但大多集中在关系型.非关系型数据库与Elasticsearch之间的同步.以上内容完成了Elasticsearch所需要的基础数据量的供给.但想要 ...
- [搜索]ElasticSearch Java Api(一) -添加数据创建索引
转载:http://blog.csdn.net/napoay/article/details/51707023 ElasticSearch JAVA API官网文档:https://www.elast ...
- elasticsearch elk最全java api 搜索 聚合、嵌套查询
目录 一. 一般查询... 2 (一) matchAllQuery(client). 2 (二) matchQuery(client);3 (三) multiMatchQuery(client);3 ...
- Elasticsearch Java API 查询
一.查询的时候,需要建立一个SearchRequestBuilder,这里面将给出对于哪一个index或者type进行查询,并且所有的设置都可以在这里面进行实现,例如模糊查询,范围查询,前缀查询等. ...
- 015-elasticsearch5.4.3【五】-搜索API【四】Joining 多文档查询、GEO查询、moreLikeThisQuery、script脚本查询、span跨度查询
一.Joining 多文档查询 joining query 像Elasticsearch这样的分布式系统中执行完整的SQL样式连接非常昂贵.相反,Elasticsearch提供两种形式的连接,旨在水平 ...
随机推荐
- MySQL相关知识总结
1. 显示所有表 show tables; 还有information_schema数据库里面有tables表,记录了所有表信息 use information_schema; select * fr ...
- HBase Filter程序样例及Shell(图)
==过滤器执行流程== reset() : reset the filter state before filtering a new row. filterAllRemaining(): true ...
- distinct group by 去重查询
select * from dc_restaurants; 31 select DISTINCT (restaurant_name),id from dc_restaurants ; 31 (会按照 ...
- sublime3中运行python 和设置
点bulid system建立下面文件 {"cmd":["C:/ProgramData/Anaconda3/python.exe", "-u" ...
- KbmMW 服务器架构简介
kbmmw 由于文档比较少,很多同学开始用时很难理解.一直准备写一个关于kbmmw 架构的东西. 这几天与红鱼儿(blog)研究服务器线程时,整理了一下,大概画了一下kbmmw (版本4.5)服务器的 ...
- 2018.10.23 bzoj1297: [SCOI2009]迷路(矩阵快速幂优化dp)
传送门 矩阵快速幂优化dp简单题. 考虑状态转移方程: f[time][u]=∑f[time−1][v]f[time][u]=\sum f[time-1][v]f[time][u]=∑f[time−1 ...
- 2018.09.09 codeforces280C. Game on Tree(期望dp)
传送门 期望dp经典题. 显然只需要算出每个点被染黑的期望步数. 点i被染黑的期望是1/(1到i这条链上的节点数)" role="presentation" style= ...
- * 结束Activity
public class MainActivity extends Activity { @Override public void onCreate(Bundle sav ...
- centos下安装visual studio code出现can't find libXss.so.1,出现这在类似怎么查找相关包
在安装visual studio code时候.出现libXss.so.1被依赖,这个so文件要查看是属于那个包,通过此命令repoquery --nvr --whatprovides libXss. ...
- MemCachedClient 节点失效时的处理
引入jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3 ...