汇总一些简单用法
因为公司需要使用一个需求, 通过用户的当前地理位置消息搜索出周边的一些数据, 如果使用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: 邓尘锋