【发布时间】:2017-03-08 09:41:40
【问题描述】:
我目前正在努力解决有关组合学的问题。
对于原型,我想尝试 neo4j-ogm。
这是我目前设计的领域模型:
@NodeEntity
public class Operand {
@GraphId
private Long graphId;
}
@NodeEntity
public class Option extends Operand {
private Long id;
private String name;
@Relationship(type = "CONDITIONED_BY")
private List<Rule> rules = new ArrayList<>();
}
@NodeEntity
public class Operation extends Operand {
@Relationship(type = "COMPOSITION", direction = Relationship.INCOMING)
private Rule composition;
private Operation superOperation;
private Boolean not;
private List<Operand> operands = new ArrayList<>();
}
public class AndOperation extends Operation {
// Relationships named accordingly "AND"
}
public class OrOperation extends Operation {
// Relationships named accordingly "OR"
}
@NodeEntity
public class Rule {
@GraphId
private Long graphId;
@Relationship(type = "COMPOSITION")
private Operation composition;
@Relationship(type = "CONDITIONED_BY", direction = Relationship.INCOMING)
private Option option;
}
这是我的图表的 sn-p:
表示类似(167079 ^ ...) & (167155 ^ ...)
是否可以在密码中形成一个查询,从而产生所有可能的组合?
167079, 167155
167079, 167092
...
到目前为止,我发现这个 resource 正在处理一个相关的问题。
你认为这是 neo4j 的合适用例吗?
您是否建议对域模型进行任何更改?
您有什么其他技术建议吗?
编辑:
示例图只显示了我原始图的一小部分,我必须计算具有各种深度和各种封装操作的排列。
【问题讨论】:
标签: neo4j spring-data-neo4j neo4j-ogm