我需要根据数据库中两个类型为float的列的值范围来查询我的数据库。
经过一些研究,我将我的选择缩小到使用以下算法之一:
- 2D正交范围搜索
- k-d树结构
现在我排除了第一种选择,因为我的数据是聚集的,因此它不会有用。
所以我需要使用k-d树结构。但是怎么做呢?我从未尝试过,也不知道从哪里开始。我的一个控制器中有一个方法,设置为检索此搜索结果的存根,但是搜索本身没有实现。
我正在尝试获得创建此功能所涉及的系统步骤。到目前为止,这就是我认为我需要做的事情,但不确定是否是正确的方式。
必须从数据库中的数据在内存中构建k-d树。(但不确定应该在rails启动时还是在请求到达时执行此操作?)
当数据更新时,编辑树并将整个树保存到数据库中
有没有办法在不显式构造它的情况下将k-d树数据结构保存在DB中?
此外,我已经在谷歌上搜索过,但想知道是否有人可以推荐一些资源?