查找完全描述选择的最小节点子集,而不是更多

时间:2015-01-23 11:27:58

标签: neo4j cypher

我正在尝试创建一个查询,该查询为我提供了一组完整描述订单配置的最小文章编号,而不是更多。

在我的图表中,我有两种类型的节点:FeatureValues和Articles。一篇文章可以提供一个或多个FeatureValues。我的输入是一组FeatureValues,我需要知道哪个是最小的文章编号集,它完整地描述了我的所有输入值,并且没有添加任何额外的FeatureValues。最佳情况是所请求的配置可以包含一个商品编号,但也可能需要多个商品编号:

示例数据集:

FV1:FeatureValue
FV2:FeatureValue
FV3:FeatureValue
FV4:FeatureValue

A1:Article-[:PROVIDES]->FV1
A2:Article-[:PROVIDES]->FV2
A3:Article-[:PROVIDES]->FV3
A4:Article-[:PROVIDES]->FV4

A5:Article-[:PROVIDES]->FV1 and FV2
A6:Article-[:PROVIDES]->FV1 and FV2 and FV3

可能的情况:

input = FV1, FV2
output: A5

input = FV1, FV2, FV3
output: A6

input = FV1, FV2, FV4
output: A4, A5

我在这里找到了一个有点相关的问题:Neo4J - find nodes where the nodes related are a subset。该查询的结果是提供所请求的FeatureValues并且不添加任何其他内容的所有项目编号的列表,但它不是最小的子集,因为一些FeatureValues将由多个文章编号描述。

谢谢!

0 个答案:

没有答案