HugeGraph Database Index
HugeGraph圖數據庫的索引支持比較全面,圖數據庫的索引一般包括幾方面:
-
圖索引/邊索引(
graph-index
):主要用於加速獲取頂點的關聯邊,一般使用鄰接表或十字鏈表等方式,也可以使用hash索引。hugegraph使用的是鄰接表。 -
超級點索引(
vertex-centric-index
):主要用於加速獲取超級頂點的部分關聯邊,比如查詢12315號碼這個點最近一週的通話邊。hugegraph通過sortkey實現的,相當於增強版鄰接表。 -
普通屬性索引(
secondary-index
):主要用於加速根據屬性來檢索頂點、或根據屬性來檢索邊,數據庫一般使用btree或hash實現。 -
可通過比較大小來檢索的屬性索引(
range-index
):主要用於加速根據屬性範圍來檢索頂點或邊,比如age>18
的人,數據庫一般使用btree實現。 -
可根據前綴+比較大小來檢索的屬性索引(
shard-index
):主要用於加速根據屬性範圍來檢索頂點或邊,比如city=Beijing && age>18
的人。 -
可全文檢索的屬性索引(
search-index
):主要用於加速根據屬性值中的任意文本段或詞語來檢索頂點或邊,比如city contains Bay
的人。
以上索引在HugeGraph圖數據庫中均支持,屬性索引在HugeGraph實現根據存儲而定,主要還是依賴lsm-tree;全文索引的實現原理是對屬性文本分詞後進行存儲索引。
參考文檔:2.5 IndexLabel