0

我是新手Neo4j,有一个问题:

我想要的只是能够add/update节点和关系,立即拥有它们的道具indexed,一些带有fulltext indexing,以及包含在 中的所有内容transactions,可从Python. 这可能吗?

我有以下requirements使用 Neo4j:

  1. Python.
  2. 立即索引nodes及其属性。
  3. 立即索引relationships及其属性。
  4. Fulltext indexing一些节点/关系属性。
  5. new indexes为现有图添加和填充。
  6. 几个单独的读取和写入调用enclosed in one transaction(最后带有单独的提交或回滚命令)。

添加于 2013-07-02:我想将 Neo4j 与连接了多个事务数据库的 plone cms 集成。用户可以调用 cms,这将作为回报affect multiple databases。所以仅仅因为 Neo4j 没有返回错误并不意味着事务应该提交 - 中止可能是由其他地方的错误引起的,在另一个数据库或一段代码中。

从我到目前为止所做的实验(使用neo4j-community-2.0.0-M03)看来:

  • 配置[node|relationship]_auto_index会给我 2,3,4,但不是 5。
    节点/关系只有一个 auto_index,所以要么所有属性都是全文,要么没有。

  • 索引将为我提供 2的label/schema运行时可配置索引,但不适用于 3,因为它们仅适用于节点。

  • REST API给我 1,2,3,4,将允许 5(因为我可以将现有节点
    /关系及其属性添加到新索引)。它不能做 6,因为在批次之外它不是事务性的。因此,运行批处理后发生的错误不会触发中止。

  • transactional endpoint结合auto_indexingandlabels/schema 仅限节点)和 6,但不是 3,因为标签/模式仅适用于节点。并且Cypher不允许向索引添加例如关系。

我最大的希望是我错过了一些东西,并且可以满足所有 6 个要求。有什么提示吗?

4

1 回答 1

1

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

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

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

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

于 2013-07-10T22:54:04.093 回答