索引实现

Index implementation

我正在尝试为我的 PH 树索引实现矩形范围查询,我有以下问题:

  1. 查看现有的实现,所有存储的数据似乎都是点数据(与 rectangles/cuboids/... 由左下角或右上角定义相反)。真的吗?或者我如何从关系中判断我是否正在存储点和矩形以及从哪里可以获得矩形的左上角?
  2. 是否有一种查询类型仅 return 位于矩形内的所有点(或 return 与给定查询矩形相交的所有矩形)?我查看了 RangeQuery,但从文档来看,它似乎是 return 给定范围的最近邻居。类似地,DatabaseQuery 的其他实现似乎不支持此标准查询。
  3. 有什么方法可以获取现有测试来验证我的实现吗?使用 @apiviz 注释实现 IndexFactory 是否足够?
  4. 可能有点跑题:我找不到 ELKI 邮件列表。 website 提到 "user mailing list" 用于更新和新闻,但 LMU 外部的注册被阻止。该站点还提到了一个社区邮件列表,但我找不到 link,有人可以 post 吗?
  1. ELKI 中的关系有类型信息。

    如果类型是NumberVector,那么就是点数据。我们还没有很多用于存储矩形的用例,但是您可以编写索引,以便它可以与例如SpatialComparable(本质上是任何一种边界框)。

  2. 目前还没有矩形 window 查询的查询类型,但可以使用中心和加权最大范数来模拟这些查询。 ELKI 中可能只有一两个数据挖掘算法使用矩形查询。大多数可以使用索引加速的数据挖掘算法似乎要么使用半径,要么使用 kNN 搜索。

  3. 最好的测试方法是支持标准范围和 knn 查询,然后 运行 例如DBSCAN 聚类和 LOF 异常值检测。如果你为它实现一个IndexFactory和一个Parameterizer(这样它就可以在MiniGUI中配置)那么这应该很容易测试。

    @apiviz 注释仅用于 JavaDoc,我们一直在考虑为 UML 图转移到不同的工具。

  4. 抱歉,目前无法访问邮件列表注册页面;系统管理员似乎有一个未解决的安全问题。我已经更新了网页,其中包含如何通过电子邮件订阅的说明。