Neo4j关系指数 – 搜索关系属性

我有一个具有以下结构的neo4j图。

(账户)— [交易] —(账户)

Transaction是一个neo4j关系,Account是一个节点。

每个交易都设置了各种属性,例如交易ID,金额,日期和各种其他银行信息。

我可以通过帐户ID运行搜索,并返回正常。 但是,当我按事务ID搜索时,neo4J搜索整个图形而不是使用索引,搜索失败。

我使用org.neo4j.unsafe.batchinsert.BatchInserterImpl.createDeferredSchemaIndex()为Account.number和Transaction.txid创建了索引。 该索引似乎适用于帐户(节点)搜索,但不适用于事务(关系)搜索。 (我也为节点和关系启用了自动索引,但它没有改变的东西)

我认为不支持关系属性的索引,因此考虑使中间节点保存属性信息。 但是,如果可能的话,我更愿意坚持我原来的设计。

知道怎么办吗?

您可以使用旧索引或自动索引来建立关系索引。 架构索引不支持索引关系。

原因是:通常您使用use节点来为您域中的#thing#或#entities#建模。 关系将您的世界连接起来并将节点置于语义上下文中。 在遵循该模型时,您通常不必索引关系,因为您的查询始终始于#thing#,它始终是一个节点。

在你的模型中,你应该重新思考建模,我想它有意义

  (account)-[:send]->(transaction)-[:to]->(account). 

因此,事务本身就是一个事物,因此成为节点。