使用Couchbase搜索给定半径内的文档

ras*_*ash 5 python couchbase couchbase-view

我想写一个地理空间视图,该视图从给定的纬度和经度搜索半径一英里范围内的以下文档.我该怎么做呢?

{
   "agree_allowed":true,
   "assigned_by":"",
   "assigned_to":"",
   "comments_allowed":true,
   "location": {
    "coordinates": [
      "-74.168868",
      "40.854655"
    ],
    "type": "Point"
  },
   "subscribed":{
      "user_cfd29b81f0263a380507":true,
      "user_cfd29b81f0263a3805010":true
   },
   "type":"report",
   "user_id":"user_cfd29b81f0263a380507",
   "username":"test17"
}
Run Code Online (Sandbox Code Playgroud)

kru*_*har 1

查看 Couchbase 中的 GeoSpatial 视图文档:http://docs.couchbase.com/4.0/views/spatial-views.html

您可以采取的一种方法是使用围绕文档位置 1 英里的边界框来索引所有文档。

然后,您将查询该视图,其中 start_range 和 end_range 的范围相同,这就是上面文档的位置。这将返回给您该点落在 1 英里边界框内的所有文档。

您可以使用 GeoJSON 来获得更精确的边界框,遗憾的是它们在规格中没有圆圈,因此根据您制作边界框的高级程度,您可能会得到与查询位置不完全在一英里范围内的结果。