如何构建有效的GeoLocation和Time查询

时间:2016-02-15 20:25:03

标签: rethinkdb rethinkdb-javascript

嘿rethinkers!

我有一个我无法弄清楚的查询优化问题。它涉及geoLocation和时间。我有很多事件,都有startTimeendTime(已编入索引)和location(已编入索引)。如果我想要在某个尚未发生的位置附近发生的事件,我可以采取以下两种方式之一:

  • 我可以根据结束时间获取并过滤所有尚未发生的事件,然后计算所有这些事件的位置,并仅返回具有指定半径的事件。
  • 我可以使用getNearest()命令(可以返回所有已过期的事件),然后过滤掉尚未发生的事件。我对这个问题的担心是,getNearest()指定了返回的数量,但我基本上需要在给定半径内完成所有这些,所以我不会错过任何尚未发生的事件。< / LI>

我只是不确定如何才能找到最快/最有效的查询。

对我而言,最好的选择似乎是过滤并获取尚未发生的所有事件,然后使用getNearest()来获取索引的优势。但我可以调用最近的过滤集。请帮忙!?!?!

1 个答案:

答案 0 :(得分:1)

要获取半径范围内的所有事件,建议您将getIntersecting()r.circle一起使用。 这不仅比getNearest更有效,而且对退回文件的数量也没有任何限制。

您可能需要将传递到r.circle的半径稍大一些,以说明生成的多边形将略微小于顶点之间的指定半径。