我有一个具有以下结构的 neo4j 图。
(账户) ---[交易]--- (账户)
Transaction是neo4j关系,Account是节点。
每笔交易都设置了各种属性,例如交易 ID、金额、日期和各种其他银行信息。
我可以按帐户 ID 运行搜索,结果返回正常。但是,当我按事务 ID 搜索时,neo4J 搜索整个图而不是使用索引,并且搜索失败。
我使用创建索引org.neo4j.unsafe.batchinsert.BatchInserterImpl.createDeferredSchemaIndex()
对于 Account.number 和 Transaction.txid。该索引似乎适用于帐户(节点)搜索,但不适用于交易(关系)搜索。 (我还为节点和关系启用了自动索引,但这并没有改变)
我认为不支持对关系属性进行索引,因此考虑使中间节点来保存属性信息。然而,如果可能的话,我更愿意坚持我原来的设计。
知道如何继续吗?
您可以使用遗留索引 http://docs.neo4j.org/chunked/stable/indexing.html or 自动索引 http://docs.neo4j.org/chunked/stable/auto-indexing.html索引关系。架构索引不支持索引关系。
原因:通常,您使用节点来对域中的#things# 或#entities# 进行建模。关系连接您的世界并将节点放入语义上下文中。当遵循该模型时,您通常不必对关系建立索引,因为您的查询始终从 #thing# 开始,而 #thing# 始终是一个节点。
在你的模型中,你应该重新考虑建模,我想这可能是有意义的
(account)-[:send]->(transaction)-[:to]->(account).
因此交易本身就是一个东西,因此成为节点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)