gpt4 book ai didi

java - Neo4j 关系索引 - 搜索关系属性

转载 作者:行者123 更新时间:2023-11-30 07:06:41 25 4
gpt4 key购买 nike

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

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

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

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

我可以按帐户 ID 运行搜索,结果很好。但是,当我按交易 ID 搜索时,neo4J 搜索整个图而不是使用索引,搜索失败。

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

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

知道如何进行吗?

最佳答案

您可以使用 legacy indexesauto indexes索引关系。架构索引不支持索引关系。

这样做的原因:通常您使用节点来为域中的#things# 或#entities# 建模。关系连接你的世界并将节点放入语义上下文中。遵循该模型时,您通常不必为关系建立索引,因为您的查询总是从 #thing# 开始,它始终是一个节点。

在你的模型中,你应该重新考虑建模,我想有可能是有意义的

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

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

关于java - Neo4j 关系索引 - 搜索关系属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25537885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com