1

嘿,反思者!

我有一个我无法弄清楚的查询优化问题。它处理地理位置和时间。我有很多事件,它们都有一个startTimeendTime(索引)和location(索引)。如果我想通过某个尚未发生的位置获取附近正在发生的事件,我可以执行以下两种方法之一:

  • 我可以根据结束时间获取并过滤所有尚未发生的事件,然后计算所有这些事件的位置并仅返回具有指定半径的事件。
  • 我可以使用该getNearest()命令(它将返回所有过期事件),然后过滤掉尚未发生的事件。我对这个方法的一个担心是它getNearest()指定了返回多少,但我基本上需要在给定半径内的所有这些,所以我不会错过任何尚未发生的事件。

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

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

4

1 回答 1

1

为了获取半径内的所有事件,我建议getIntersecting()与 一起使用r.circle。这不仅比 效率更高getNearest,而且对返回的文档数量没有任何限制。

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

于 2016-02-15T21:10:24.940 回答