Neo4j 兩種索引Legacy Index與Schema Index區別


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM