我需要根据一系列两个值来查询我的数据库,这两个值基本上是我的数据库中两个float类型的列。
在做了一些研究之后,我使用以下任一方法缩小了使用算法实现此选项的选项:
现在我删除了第一个选项,因为我的数据是聚集的,因此它没有用处。
所以我需要使用k-d树结构。但是怎么样?我从来没有做过,也不知道从哪里开始。我在我的一个控制器中有一个方法,它设置为存根以检索此搜索的结果,但搜索本身未实现。
我试图获得创建此功能所涉及的系统步骤。到目前为止,这是我认为我需要做的事情,但是如果它是正确的方法则不知道。
必须根据数据库中的数据在内存中构建k-d树。 (但不确定何时应该这样做 - 无论是在铁轨启动时还是在请求进入时?)
当数据发生更新时,编辑树并将整个树保存到数据库中
有没有办法在数据库本身保存k-d树数据结构而不用明确地构建它?
另外,我已经四处搜索,但想知道是否有人可以为此推荐任何资源?
答案 0 :(得分:3)
我们在之前的项目中使用了一个宝石:
https://rubygems.org/gems/kdtree
还有一个线程安全的分支:
https://rubygems.org/gems/tupalo-kdtree
也许在实现自己之前先看一下。