【问题标题】:How do I create a spacial index in neo4j using only cypher?如何仅使用密码在 neo4j 中创建空间索引?
【发布时间】:2014-10-25 06:53:43
【问题描述】:

我想玩 neo4j 和空间索引。我找不到任何说明如何通过 cypher 执行此操作的文档,只能通过 REST API。

是否可以通过 Cypher 创建空间索引,比如在 neo4j Web 控制台中?

【问题讨论】:

    标签: neo4j cypher neo4j-spatial


    【解决方案1】:

    目前无法使用 Cypher 创建空间索引。您可以使用 java API 或 REST 调用,有关详细信息,请参阅http://neo4j-contrib.github.io/spatial/#rest-api-create-a-spatial-index 的文档。由于 Neo4j 浏览器允许发送 HTTP POST,您可以在此处输入:

    :POST /db/data/index/node {"name":"geom", "config": 
      {"provider":"spatial", "geometry_type":"point", "lat":"lat", "lon":"lon"}
    }
    

    您也可以在neo4j-shell 中使用索引命令。

    Neo4j 3.0 更新

    Neo4j Spatial for 3.0 提供存储过程来管理空间索引 - 因此一切都可以通过密码完成。见https://github.com/neo4j-contrib/spatial/blob/master/src/main/java/org/neo4j/gis/spatial/procedures/SpatialProcedures.java。 注意:此版本尚未发布,因此您必须自己从源代码构建。

    【讨论】:

    • 此索引是否对所有具有 lon 和 lat 属性的节点进行索引,或者我是否需要做一些事情以将其应用于仅:PostCode 的说法。 (对不起!新手问题!)
    • 空间索引是手动索引,因此您需要手动将节点添加到索引中。对此有一个 REST 调用,请参阅neo4j.com/docs/stable/…
    • 我在使用由 REST 数据库连接支持的 Java API 创建空间索引时遇到问题stackoverflow.com/questions/26602540
    • 没有擦洗。没关系 :) 我可以按照您的建议在 REST 上创建索引:graphDb.index().forNodes( "points", ["provider": "spatial", "geometry_type": "point", "lat": "lat", "lon":"lon"])
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多