我試圖創建一個查詢,帶給我一些節點有一組節點的精確匹配的節點。在這種情況下,我想帶上帶有標籤的體驗,例如,什麼體驗有標籤:「食物」,「夜生活」和「文化」。Neo4j的Cypher支架查詢找到精確匹配(並且不是OR)
我的查詢「工作」,但使用或代替並把結果。我該如何解決它?
我不知道如果我使用的
@Query("START experience = node:__types__(className=\"...\"), tags = node({0}) " +
"WHERE experience-[:TAGGED]->tags " +
"RETURN experience")
public Set<Experience> findExperiencesByTags(Set<Long> tagIds);
去正確的做法我使用Spring 2.0.1數據和Neo4j的1.6.3。
我試圖做一些更通用。我收到一組標籤ID,比如這個方法的參數,我必須用這些來創建我的「where」子句...... –
哦,我現在看到了。難道你不能簡單地將輸入標籤集分成不同的定義嗎?而不是「tags = node({0})」嘗試將輸入標籤數組首先分析到單獨的起始節點中 - tag1 = node({tagIds [0]}),tag2 = node({tagIds [1]}),tag3 = node({tagIds [2]}),...直到tagIds結束。比我上面寫的節點(沒有where /和子句)匹配節點。 – ulkas
我創建了一個按照@ulkas建議的動態查詢,它的工作原理! –