我是使用Neo4j的新手,对节点交叉点的计算有疑问。
我们假设,我有三个属性A,B,C,我想只选择具有所有三个属性的节点。
我为属性创建了一个索引,因此,我可以获得具有其中一个属性的所有节点。但是,之后我必须合并IndexHits。有没有办法直接选择具有三个属性的所有节点?
我的第二个想法是为每个属性创建一个节点,并通过关系连接其他节点。然后,我可以迭代所有关系,并为每个属性获取连接的节点列表。但同样,我必须事后计算交叉点。
我在这里是否有一个功能,因为我认为这是一个标准问题。
非常感谢, 尼
答案 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查询语法