【问题标题】:Compound B-Tree Index in JavaScriptJavaScript 中的复合 B 树索引
【发布时间】:2015-04-25 00:17:00
【问题描述】:

我正在研究如何在 JavaScript 中实现支持索引复合字段的 b-tree。示例对象:

{
    "name": "Jim",
    "age": 14
}

“姓名”和“年龄”字段上的复合索引将允许对“姓名”字段或“姓名”和“年龄”字段进行快速完全匹配、前缀匹配和范围搜索。

如何对 b-tree 索引进行编码以实现上述目标(在 JavaScript 或伪代码中)?

现成的解决方案也很有用,但我主要对解决方案的内部细节感兴趣,因此最好解释清楚的索引和检索过程。

此外,任何人都可能熟悉的有关该主题的任何书籍或技术文章也会有所帮助!

【问题讨论】:

  • 重要的是建立一个排序:你如何比较其中两个键并知道哪个在另一个“之前”?一旦你决定了,那么它就和普通的 B-Tree 完全一样了。
  • 您是否查看过 Javascript 中现有的 B-Tree 实现(简单的 Google 搜索显示大量代码可供查看)?您需要帮助的那些实现缺少哪些?
  • @jfriend00 您希望每个人都使用搜索并首先检查现有库...有没有人不这样做?!?现有的库都没有讨论如何以我上面描述的方式使用 b-tree 来索引复合字段,因为它们主要只对 b-tree 本身的孤立操作感兴趣,而不是它的用法。

标签: javascript database indexing b-tree


【解决方案1】:

只需创建两个 B-Tree,一个只对 name 进行索引,另一个对 name 和 age 进行索引。现在创建一个允许在任一树中查找的接口,并提供在两棵树中执行此操作的插入/删除方法以使它们保持同步。

【讨论】:

  • 哇,这显然是一种非常简单有效的处理方法……我专注于一棵树,以至于我什至没有想到这一点。谢谢,我认为这将完全解决它。
猜你喜欢
  • 2016-03-16
  • 2016-11-06
  • 1970-01-01
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 2012-06-26
相关资源
最近更新 更多