我正在尝试在ES 1.0.0上设置geo_point对象并针对它运行简单的概念证明查询,但查询无法返回任何命中。以下是我的设置步骤:
1)创建映射:
PUT jay/geotest/_mapping
{
"geotest" : {
"properties" : {
"name" : {
"type" : "string"
},
"pin" : {
"type": "geo_point"
}
}
}
}
2)验证映射:
GET jay/geotest/_mapping
3)添加一段数据
put jay/geotest/1
{
"name": "test1",
"pin": {
"lat": 0,
"lon": 0
}
}
4)查询该数据:
GET jay/geotest/_search?search_type=count
{
"filtered" : {
"filter" : {
"geo_distance" : {
"distance" : "100km",
"pin" : {
"lat" : 0,
"lon" : 0
}
}
}
}
}
我的预期结果是我将返回一个命中,但查询不返回任何内容。
提前致谢!
答案 0 :(得分:1)
我认为你错过了请求的“查询”部分。
POST jay/geotest/_search
{
"query": {
"filtered": {
"filter": {
"geo_distance": {
"distance": "100km",
"pin": {
"lat": 0,
"lon": 0
}
}
}
}
}
}
我刚刚测试了您的步骤,并进行了更改会返回文档。