Neo4j:用于计算交叉多个属性的Java API

时间:2014-01-27 10:24:55

标签: neo4j graph-databases java-api

我是使用Neo4j的新手,对节点交叉点的计算有疑问。

我们假设,我有三个属性A,B,C,我想只选择具有所有三个属性的节点。

我为属性创建了一个索引,因此,我可以获得具有其中一个属性的所有节点。但是,之后我必须合并IndexHits。有没有办法直接选择具有三个属性的所有节点?

我的第二个想法是为每个属性创建一个节点,并通过关系连接其他节点。然后,我可以迭代所有关系,并为每个属性获取连接的节点列表。但同样,我必须事后计算交叉点。

我在这里是否有一个功能,因为我认为这是一个标准问题。

非常感谢, 尼

1 个答案:

答案 0 :(得分:4)

您是否也拥有自己寻找的价值观?您将从限制最多找到节点数量的属性开始。

MATCH (a:Label {property1:{value1}})
WHERE a.property2 = {value2} AND  a.property3 = {value3}
RETURN a

对于Java API和lucene索引:

gdb.index().forNodes("foo").query("p1:value1 p2:value2 p3:value3")

Lucene查询语法