2012-12-20 47 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

随意博客关于你的工作,会超级有趣! –