我可以在neo4j中使用http对节点和关系(普通和全文)进行索引吗?

时间:2013-07-02 14:28:40

标签: python transactions indexing neo4j cypher

我是Neo4j的新手并且有一个问题:

我想要的只是能够add / update节点和关系,立即拥有道具indexed,有些fulltext indexing,并且所有内容都包含在{{} 1}},可从transactions使用。这可能吗?

我使用以下Python来使用Neo4j:

  1. 使用requirements
  2. 立即索引Python及其属性。
  3. 立即索引nodes及其属性。
  4. relationships某些节点/关系属性。
  5. 为现有图表添加和填充Fulltext indexing
  6. 几个单独的读写调用new indexes(最后使用单独的提交或回滚命令)。
  7. 已添加2013-07-02:我想将Neo4j与plone cms集成,后者连接了多个事务数据库。用户可以调用cms,这将返回enclosed in one transaction。因为Neo4j没有返回错误并不意味着事务应该提交 - 中止可能是由其他地方的错误引起的,在另一个数据库或代码片段中

    从我到目前为止所做的实验(使用affect multiple databases)来看,我认为:

    • 配置neo4j-community-2.0.0-M03会给我2,3,4,但不是5.而且 节点/关系只有一个auto_index,所以全部都是 属性是全文或无。

    • [node|relationship]_auto_index索引会为我提供2的运行时可配置索引,但不会为3,因为它们仅适用于节点。

    • label/schema给了我1,2,3,4,允许5(因为我可以添加现有的 节点/关系及其对新索引的属性)。它不能做6,因为 批次之外它不是交易性的。因此运行批处理后发生的错误 无法触发中止。

    • REST APItransactional endpointauto_indexing的组合 给我1,2,4,5(仅节点)和6,但不是3,因为标签/模式只适用于 节点。并且labels/schema不允许添加例如与索引的关系。

    我最大的希望是我错过了一些东西,所有6项要求都可以实现。任何提示?

1 个答案:

答案 0 :(得分:1)

如评论中所述,您需要使用(当前是实验性的)事务性REST端点。结合标签和声明性索引,这解决了要求1,2,5,6。

将此与关系属性的自动索引相结合,解决了3和4.重建关系自动索引可以使用cypher完成:

start r = rels(*) set r.<prop> = r.<prop>

表示所有可自动索引的属性。对于较大的数据集,请考虑使用limitskip以便在编制索引时控制事务大小。