汇总一些简单用法
因为公司需要使用一个需求, 通过用户的当前地理位置消息搜索出周边的一些数据, 如果使用php进行大数据计算的话,非常消耗性能,所以采用es
相关文档学习
包的使用:
https://packagist.org/package...
https://www.cnblogs.com/codeA...
地理位置的查询:
http://cwiki.apachecn.org/pag...
查询语法:
https://doc.yonyoucloud.com/d...
经纬度查询实例:
https://cloud.tencent.com/inf...
ES - PHP
https://www.elastic.co/guide/...
创建索引
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: 邓尘锋