2018-09-06【Elasticsearch】Shapefile 导入ES并进行空间查询

参考 : https://www.gdal.org/drv_elasticsearch.html

  1. 下载GDAL
  2. 下载Elasticsearch
    版本的差异可能会导致失败,这次下载的是gdal 2.3.2 ,es5.3
    两个文件的win64 二进制包 链接:https://pan.baidu.com/s/149AYKckrdc5mKnCK3wmYGg 密码:a8vm
  3. 将gdal的bin目录添加到path环境变量,将GDAL\bin\gdal\apps也添加到path变量。主要是利用ogr2ogr.
  4. es的配置需要java环境,具体参考官网 https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html
  5. 运行es,在cmd用ogrinfo验证
D:\es5.3>ogrinfo ES:http://localhost:9200
INFO: Open of `ES:http://localhost:9200'
      using driver `ElasticSearch' successful.
  1. 在cmd生成mapping 文件
    > ogr2ogr -progress --config ES_WRITEMAP <map的文件路径>\map.txt -f "ElasticSearch" http://localhost:9200 <shapefile的文件路径>\Address_SpatialJoin2new.shp
    map文件如下,中间部分字段没贴。如果需要分词或拼音,可在这个文件修改,再重新更新es。
{
    "FeatureCollection": {
        "properties": {
            "type": {
                "type": "string"
            },
            "properties": {
                "properties": {
                    "OBJECTID": {
                        "type": "integer"
                    },

                //...一系列其他字段


                }
            },
            "geometry": {
                "properties": {
                    "type": {
                        "type": "string"
                    },
                    "coordinates": {
                        "type": "geo_point"
                    }
                }
            }
        },
        "_meta": {
            "fid": "ogc_fid"
        }
    }
}
  1. 在cmd导入shapefile数据 >ogr2ogr -progress -lco BULK_SIZE=5000000 -f "ElasticSearch" http://localhost:9200 <路径>\Address_SpatialJoin2new.shp
  2. 根据空间查询,使用postman发post请求
    url :
    http://localhost:9200/address_spatialjoin2new/_search
    body:
{
    "query": {
        "bool" : {
            "must" : {
                "match_all" : {}
            },
            "filter" : {
                "geo_distance" : {
                    "distance" : "100m",
                    "geometry.coordinates": [
                            119.976261537,
                            30.528380685
                        ]
                }
            }
        }
    }
}

这个query的geometry.coordinates的写法需要注意一下,包括坐标的形式,可以参考search直接返回的结果。

  1. 查询结果
{
    "took": 2,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
    },
    "hits": {
        "total": 331,
        "max_score": 1,
        "hits": [
            {
                "_index": "address_spatialjoin2new",
                "_type": "FeatureCollection",
                "_id": "AWWtx3n1BbfRLhXuj20e",
                "_score": 1,
                "_source": {
                    "ogc_fid": 36749,
                    "geometry": {
                        "type": "POINT",
                        "coordinates": [
                            119.976261537,
                            30.528380687
                        ]
                    },
                    "type": "Feature",
                    "properties": {
                        "OBJECTID": 36749,
                        "Join_Count": 1,
                        "TARGET_FID": 36821,
                        "JOIN_FID": 305640,
                        "ID": "n320138",
                        "ADDENTIID": "23305210020000020138",
                        "POIENTIID": null,
                        "STAADDRESS": "湖州市德清县舞阳街道御景公馆诚园5幢3单元506室",
                        "CITYNAME": "湖州市",
                        "COUNTYNAME": "德清县",
                        "TOWNNAME": "舞阳街道",
                        "VILLAGNAME": null,
                        "DEVREGNAME": null,
                        "STREETNAME": null,
                        "DISTRINAME": "御景公馆",
                        "RESNAME": "诚园",
                        "DOORPLATE1": null,
                        "DOORPLATE2": "5幢",
                        "DOORPLATE3": "3单元",
                        "DOORPLATE4": "506室",
                        "CUSTOMCODE": null,
                        "X": "119.976261537",
                        "Y": "30.528380687",
                        "COLNOTE": null,
                        "PEOPLE": "王醒",
                        "BLOCK": "N3",
                        "COLDATA": "2017/04/19",
                        "STODATA": null,
                        "SUBMITID": "第一批次",
                        "FSCALE": "999",
                        "FCODE": "3103011500",
                        "NAME": null,
                        "OGLAYER": 18,
                        "UGLAYER": 0,
                        "OPENLAYER": 0,
                        "CONSTRUCT": null,
                        "FTYPE": null,
                        "BASEAREA": 0,
                        "USETYPE": null,
                        "ENTIID": "d048fc83d497407297ff28d53ac70c99",
                        "SUPENTIID": null,
                        "ELEMID": "d048fc83d497407297ff28d53ac70c99",
                        "CLASID": "310300",
                        "FROMVERSIO": 1,
                        "TOVERSION": 2
                    }
                }
            },
.....
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容