我需要根据两个值的范围查询我的数据库,这两个值本质上是我的数据库中的两列 float 类型。
在做了一些研究之后,我缩小了我的选择范围,使用以下任一算法来实现它:
- 二维正交范围搜索
- kd树结构
现在我取消了第一个选项,因为我的数据是聚集的,因此它不会有用。
所以我需要使用kd树结构。但是怎么做?我从来没有做过,也不知道从哪里开始。我在我的一个控制器中有一个方法,该方法设置为存根来检索此搜索的结果,但搜索本身并未实现。
我试图获得创建此功能所涉及的系统步骤。到目前为止,这是我认为我需要做的,但不知道这是否是正确的方法。
必须根据数据库中的数据在内存中构建 kd 树。(但不确定何时应该这样做——无论是在 rails 启动时还是在请求到来时?)
当数据发生更新时,编辑树并将整个树保存到数据库中
是否有任何方法可以将 kd 树数据结构保存在数据库本身而不显式构建它?
另外,我在谷歌上搜索过,但想知道是否有人可以为此推荐任何资源?