2015-02-23 50 views
0

我正在研究如何在JavaScript中實現可支持索引複合字段的B樹。示例對象:JavaScript中的複合B樹索引

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

在兩個「name」和「年齡」字段將允許在任一「名稱」字段或「名稱」快速全匹配,前綴匹配和範圍搜索與「年齡」的化合物,索引領域。

如何編碼b-tree索引以便實現上述目標(使用JavaScript或僞代碼)?

現成的解決方案也是有用的,但我主要對解決方案的本質內部感興趣,所以一個很好解釋的索引和檢索過程將是最有用的答案。

此外,任何人都可能會熟悉的任何書籍或技術文章也會有所幫助!

+0

重要的是要建立一個排序:你如何比較兩個鍵,並知道哪一個在另一個「之前」?一旦你決定了,那麼它和普通的B-Tree是完全一樣的。 – Pointy 2015-02-23 16:06:19

+0

您是否看過Javascript中現有的B-Tree實現(一個簡單的Google搜索顯示了大量代碼)?缺少你需要幫助的那些實現是什麼? – jfriend00 2015-02-23 16:08:09

+0

@ jfriend00你會希望每個人都使用搜索和檢查現有的圖書館......有沒有人不這樣做?!?沒有一個現有的庫討論如何使用b-tree來按照我上面描述的方式對化合物字段進行索引,因爲它們主要只對b樹自身的孤立操作感興趣,而不是它的用法。 – 2015-09-01 09:44:17

回答

1

只製作兩棵B-Tree,一棵只對名字進行索引,另一棵對名稱進行索引,然後對年齡進行索引。現在創建一個允許在任一樹中查找的接口,並提供在兩個樹中執行插入/刪除方法以使其保持同步的插入/刪除方法。

+0

哇,這顯然是一個非常簡單而有效的方法來處理這個問題......我非常專注於一棵樹,我甚至沒有想到這一點。謝謝,我認爲這將完全解決它。 – 2015-09-01 09:45:13