我有这样的图表:
(A) - [R 1] - (B) - [R 2] - (C)
问题是,r1和r2可以具有不同数量的属性。
relation1:
index1: 10
index2: 2
relation2:
index1: 6
index2: 4
index3: 5
是否可以在不知道名字的情况下搜索所有房产?或者有没有更好的方法来保持neo4j中的列表?
答案 0 :(得分:2)
属性值可以是列表,只要所有元素都是相同类型即可。所以你可以拥有
match (A) -[r1]-> (B) -[r2]-> (C) set r1.vals = [10, 6], r2.vals=[6, 4, 5]
以后再搜索
match (A) -[r]-> (B) where 10 in r.vals return a,b
我不知道这是否适用于索引,因此可能是tstorms'如果你有很多这样的关系,答案会更好。
答案 1 :(得分:1)
在“原生”密码中无法执行此操作,但您可以使用使用Lucene的automatic relationship indexing。我想你可以在Cypher中做到以下几点:
START r=rel:rel_auto_index("*:'your_search_value'")
RETURN startNode(r), endNode(r), type(r);
确保在Neo4j属性中启用自动索引:
relationship_auto_indexing = true