我正在寻找一个成熟的Java M-Tree实现 - 甚至是任何M-Tree实现(除了我发现的唯一实现)
http://en.wikipedia.org/wiki/M-tree
对于那些没有听说过M-tree的人(就像我2天前一样),M-Tree是一个搜索树,可以检索“n个最近的条目”或“距离d内的所有条目”它使用的密钥可以放在“度量空间”中(M代表度量)。
我在网上找到了一个:https://github.com/erdavila/M-Tree
如果有必要,这个实现是可行的,但它不是Serializable,不提供“contains()”方法,并且它当前正在抛出一个断言错误(我已经想出了如何修复)。
如果存在稍微更精细的实现,我想知道,因为这个数据结构看起来非常有用,我想找到一个规范的实现。
---添加了更多信息(为了防止这个问题被关闭)---
我的最终目标是一个Map,其中“public Value get(Key)”方法返回“最接近”的值,即使没有精确的Key匹配。因为我正在使用在度量空间上定义的键,我正在寻找MTree来处理此问题的“最接近”部分。
上面的实现是行不通的,因为(1)当相同的Key被放入两次时失败,(2)它不允许我删除Key,(3)它不允许我测试是否已插入密钥。