在Rails中实现k-d树 - 需要帮助入门

3

我需要根据数据库中两个类型为float的列的值范围来查询我的数据库。

经过一些研究,我将我的选择缩小到使用以下算法之一:

  1. 2D正交范围搜索
  2. k-d树结构

现在我排除了第一种选择,因为我的数据是聚集的,因此它不会有用。

所以我需要使用k-d树结构。但是怎么做呢?我从未尝试过,也不知道从哪里开始。我的一个控制器中有一个方法,设置为检索此搜索结果的存根,但是搜索本身没有实现。

我正在尝试获得创建此功能所涉及的系统步骤。到目前为止,这就是我认为我需要做的事情,但不确定是否是正确的方式。

  1. 必须从数据库中的数据在内存中构建k-d树。(但不确定应该在rails启动时还是在请求到达时执行此操作?)

  2. 当数据更新时,编辑树并将整个树保存到数据库中

  3. 有没有办法在不显式构造它的情况下将k-d树数据结构保存在DB中?

此外,我已经在谷歌上搜索过,但想知道是否有人可以推荐一些资源?


1
你考虑过使用kdtree gem吗?https://github.com/awebneck/kdtree - Harish Shetty
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接