Legacy Indexes
在Neo4j 2.0版本之前,Legacy index被稱作indexes。這個索引是通過外部圖存儲在外的Lucene實現,允許“節點”和“聯系”以key:value鍵值對的方法被檢索。從Neo4j 提供的REST接口來看,被稱作“index”的變量通常是指Legacy indexes。
Legacy index能夠提供全文本檢索的能力。這個功能並沒有在schema index中被提供,這也是Neo4j 2.0* 版本保留legacy indexes的原因之一
注意:使用legacy index查詢往往需要一個開始“節點”;並且它並沒有能力提高查詢的速度。
Schema Indexes
Neo4j 2.0版本在“節點標簽”章節介紹schema。shcema indexes以及約束的最基本應用在於帶屬性的“標簽”在路徑匹配。與legacy index不同之處在於,schema index能夠提高查詢速度。
注意:僅僅schema index有“標簽”這個概念;legacy index完全沒有“標簽”的概念。
schema index僅僅對節點是有效而legacy index允許“節點”和“關系”都被索引。“關系”索引的使用場景是很少的,並且通常都可以通過引入額外的節點解決問題。
選擇哪一個
如果你正在使用Neo4j 2.0或者更高版本並且不需要支持2.0版本之前legacy index的代碼,那么請只使用schema index同時避免legacy index。
相反,如果你被卡住的Neo4j的早期版本,並且無法升級,無論如何你都只有一種索引可以選擇(legacy index)
如果你需要全文檢索的索引,不管是什么版本,有都將使用legacy index。
更復雜的場景在於從一中索引調用到另外一中索引。這種情況下,請確保你已經對兩個索引的不同有足夠的認識並且嘗試過,在可能的情況下,只使用schema index或者legacy index而不是兩者都使用。混合使用兩者經常導致更多的困惑。
本篇文章翻譯自:http://nigelsmall.com/neo4j/index-confusion
教程結束,感謝閱讀。
歡迎轉載,但請注明本文鏈接,謝謝。
2016-03-30 20:09:22
