elasticsearch geo_shape查询返回无结果

时间:2015-11-05 16:26:50

标签: elasticsearch elasticsearch-geo-shape

我正在尝试获取一个与圆相交的记录列表。

映射: 我有一个geo_point和一个geo_shape,但我只是指geo_shape

{
   "mappings": {
      "poi": {
         "properties": {
            "id": {
               "type": "string",
               "index": "not_analyzed"
            },
            "type": {
               "type": "string",
               "index": "not_analyzed"
            },
            "name": {
               "type": "string",
               "analyzer": "whitespace"
            },
            "pin": {
               "type": "geo_point"
            },
            "geometry": {
               "type": "geo_shape",
               "tree": "quadtree",
               "precision": "1m"
            },
            "extras": {
               "type": "object"
            }
         }
      }
   }
}

记录(列表中的第一个,不一定匹配)

{
   "id": 416824728,
   "pin": [
      11.2418666,
      46.4718564
   ],
   "geometry": {
      "type": "Point",
      "coordinates": [
         11.2418666,
         46.4718564
      ]
   },
   "extras": {
      "capacity": "5",
      "amenity": "parking",
      "fee": "no"
   },
   "name": "",
   "type": "poi"
}

查询:

{
   "query": {
      "filtered": {
         "query": {
            "match_all": {}
         },
         "filter": {
            "geo_shape": {
               "geometry": {
                  "shape": {
                     "type": "circle",
                     "radius": "100km",
                     "coordinates": [
                        11,
                        46
                     ]
                  }
               }
            }
         }
      }
   }
}

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:0)

我正在并行使用node.js批量api实现,而不能搜索的记录。

利用承诺我已经在系列中使用了批量api,但只有可搜索的Point类型。

逐个切换到记录插入后,所有记录(包括Polygon和LineString)都正确索引(?),因此可搜索。