基于Elasticsearch的地理位置简单搜索

栏目: 后端 · 发布时间: 7年前

内容简介:因为公司需要使用一个需求, 通过用户的当前地理位置消息搜索出周边的一些数据, 如果使用php进行大数据计算的话,非常消耗性能,所以采用es包的使用:

汇总一些简单用法

基于Elasticsearch的地理位置简单搜索

因为公司需要使用一个需求, 通过用户的当前地理位置消息搜索出周边的一些数据, 如果使用 php 进行大数据计算的话,非常消耗性能,所以采用es

相关文档学习

包的使用:

https://packagist.org/package...

https://www.cnblogs.com/codeA...

地理位置的查询:

http://cwiki.apachecn.org/pag...

经纬度查询实例:

https://cloud.tencent.com/inf...

创建索引

PUT http://localhost :9200/show

创建索引字段

PUT http://localhost :9200/show/store/_mapping

{ 
    "store": { 
            "_all":{ 
            "enabled":false 
            }, 
            "properties": { 
                "id": { 
                    "type": "integer" 
                }, 
                "name": { 
                    "type": "text", 
                    "analyzer": "ik_max_word" 
                }, 
                "type": { 
                    "type": "integer"
                },
                "position": {
                    "properties": {
                        "location": {
                            "type": "geo_point"
                        }
                    }
            }
            } 
        } 
}

创建索引文档

PUT http://localhost:9200/show/test/2

{ 
    "id" : 1, 
    "name" :  "建升大厦", 
    "type" :  1,
    "position":{
        "location" : {
            "lat" : 22.6482057076,
            "lon" : 114.1250142233
        }
    }
}


PUT http://localhost:9200/show/test/1

{ 
    "id" : 2, 
    "name" :  "深圳市第三人民医院", 
    "type" :  1,
    "position":{
        "location" : {
            "lat" : 22.6352587415,
            "lon" : 114.1289020619
        }
    }
}

PUT http://localhost:9200/show/test/3

{ 
    "id" : 3, 
    "name" :  "深圳百合医院", 
    "type" :  1,
    "position":{
        "location" : {
            "lat" : 22.6164455768,
            "lon" : 114.1395956293
        }
    }
}

开始查询

查询所有

POST http://localhost:9200/show/store/_search //

{
    "query": {
        "bool": {
            "must": {
                "match_all": {
                    
                }    
            },
            "filter": {
                "geo_distance": {
                    "distance" : "10km",
                    "position.location": {
                        "lat": 22.6497899384,
                        "lon": 114.1258725301
                    }
                }
            }
        }
    },
    "sort": [ 
    { 
        "_geo_distance": { 
            "position.location": { 
            "lat": 22.6497899384, 
            "lon": 114.1258725301
        }, 
            "order": "asc", 
            "unit": "km", 
            "mode": "min"
        } 
    } 
    ]
}

查询+分词

{
    "from":3,
    "size":3,
    "query": {
        "bool": {
            "must": {
                "match": {
                    "name": "深圳"
                }    
            },
            "filter": {
                "geo_distance": {
                    "distance" : "100km",
                    "position.location": {
                        "lat": 22.649928,
                        "lon": 114.125646
                    }
                }
            }
        }
    },
    "sort": [ 
    { 
        "_geo_distance": { 
        "position.location": { 
        "lat": 22.6497899384, 
        "lon": 114.1258725301
    }, 
        "order": "asc", 
        "unit": "km", 
        "mode": "min"
        } 
    } 
    ]
}

以上文档的下载地址

点我查看下载地址-

from: 邓尘锋


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编程之美:微软技术面试心得

编程之美:微软技术面试心得

《编程之美》小组 / 电子工业出版社 / 2018-9 / 79

《编程之美:微软技术面试心得》收集了约60道算法和程序设计的题目,这些题目大部分在微软的笔试、面试中出现过,有的曾被微软员工热烈地讨论过。作者试图从书中各种有趣的问题出发,引导读者发现问题、分析问题、解决问题,寻找更优的解法。《编程之美:微软技术面试心得》内容分为以下几个部分。 游戏之乐:从游戏和其他有趣问题出发,化繁为简,分析总结。 数字之魅:编程的过程实际上就是和数字及字符打交道的......一起来看看 《编程之美:微软技术面试心得》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具