2012-12-20 92 views
0

假設我想實現一個新的索引結構(例如,BITMAT),這將提高某些查詢的(對於BITMAT情況下,路徑查詢)的效率。如何擴展Neo4j以便每個具有指定查詢模式的查詢都使用我的新索引而不是Neo4j的本機索引?新的索引結構擴展的Neo4j

+0

你是什麼指定的查詢模式,還有你的環境(java,python,console only ...)? – ulkas

+0

編程環境是Java。指定的查詢模式取決於索引。例如,一個bitmat索引通常用於快速評估形式a - > b,a - > c的查詢模式,我們假設b是綁定的,並且我們從索引中檢索c的值,而不必遍歷查詢時間的圖形。我可以添加我的索引作爲一個單獨的算法。真正的問題是我們如何通知CYPHER查詢處理器使用我的索引作爲其標準查詢評估過程的一部分。 – user1918149

回答

1

,你可以實現一個新的IndexProvider掛鉤到正常Neo4j的索引系統。然後這些會自動暴露給Cypher。你可以看到這樣的例子在這個SpatialIndexProvider,突出的子查詢到索引查找,並對其運行的Cypher查詢:用暗號

https://github.com/neo4j/spatial/blob/master/src/main/java/org/neo4j/gis/spatial/indexprovider/LayerNodeIndex.java

測試:

https://github.com/neo4j/spatial/blob/master/src/test/java/org/neo4j/gis/spatial/IndexProviderTest.java#L141

+0

謝謝彼得。這就是我一直在尋找的。 – user1918149

+0

隨意博客關於你的工作,會超級有趣! –