空间数据从传统的关系型数据库同步到Elasticsearch中实现多类别要素空间查询的实现流程如下:
1.确定坐标系:根据应用场景确定Elasticsearch中存储的空间数据的坐标系类型。
2.坐标转换:如果数据源与Elasticsearch中的坐标系不一致,需要将数据源的坐标转换为目标坐标系。
3.格式转换:将各种格式的空间数据,如Shapefile、Geodatabase等转换为GeoJSON或WKT结构组织的数据文件。
4.建立索引模板(Index template):Elasticsearch按照索引模板配置索引创建时的属性信息。对数据流而言,每个数据流都需要一个匹配的索引模板,该模板包含用于配置数据流的后备索引(backing indices)的映射和设置信息。模板中包含有索引创建时需要的基本信息,所以无论是手动还是引用已有文档的方式创建索引之前都需要先建立模板。
5.创建索引及映射关系:利用创建索引API创建新的索引,创建语法为“PUT /”。其中为新建索引的名称。新建索引的时候可以同时设置索引的配置信息、索引中的字段映射关系、索引别名。如果索引的命名规则满足索引模板,则会引用索引模板中的映射和配置信息。
6.采集数据入库:
测试阶段可以使用命令行或是Kibana的控制台调用Bulk API来批量导入坐标文件。也可以在应用程序中集成Elasticsearch的客户端实现批量数据入库。Elasticsearch提供了多种语言的客户端,包括Java、JavaScript、Go、.NET、PHP、Perl、Python和Ruby等。也可以借助ELK Stack的生态产品Logstash建立关系数据库与Elasticsearch的数据通道,动态地采集、转换和传输关系数据库中的初始数据到Elasticsearch中。
7.空间查询:Elasticsearch通过JSON格式的Query DSL(Domain Specific Language)定义查询语句。查询WGS84坐标系的空间数据时使用地理查询(Geo queries)语句,查询任意直角坐标系的空间数据时使用图形查询(Shape queries)语句。
Elasticsearch中多类别空间查询的实现流程
最新推荐文章于 2024-07-27 00:06:07 发布