2016-01-06 94 views
0

當密鑰是多個值的函數時,有效級別搜索的最佳數據結構是什麼? 說我的鑰匙是[Row Key] [Column Name] [ TimeStamp ]多級密鑰的數據結構

+0

https://en.wikipedia.org/wiki/Multimap –

回答

0

也許您正在尋找一個多維索引或聚合索引?

聚合索引將多個鍵(時間戳,行鍵......)合併成一個單一的鍵,然後存儲在一個普通的搜索索引(Hashmap,B-tree或類似的)中。聚合可以通過連接密鑰或交織它們的位來完成。

多維索引允許同時索引和搜索多個屬性。例如,如果你有[ID] [attr1] [attr2] [timestamp]那麼你可以使用4維索引。您將不得不將所有值轉換爲整數或浮點數(對於可以使用的字符串將前幾個字符轉換爲整數)。對於查找,您可以簡單地將這些維度清空,而您不知道該值。多維索引例如是R * -Tree,X-tree,PH-Tree。還有kd樹和四叉樹,它們實現起來相當簡單,但對於大型數據集或許多維度來說並不是那麼好。