2013-03-08 38 views
0

採用最新Neo4jClient訪問Neo4j的DB我不能成功運行下面的Cypher查詢:通過指數收益率查詢節點擷取關係結果爲零(暗號)

  var connections = _graphClient.Cypher 
           .StartWithNodeIndexLookup("n", "indexName", "'id:*'") 
           .Match("c=(n)-[:RELATIONSHIP_TYPE]-()") 
           .Return<MyRelationship>("c") 
           .Skip(5) 
           .Limit(10) 
           .Results; 

這將返回結果爲零。然而,它會生成以下查詢:

START n=node:indexName('id:*') MATCH c=(n)-[:RELATIONSHIP_TYPE]-() RETURN c SKIP 5 LIMIT 10 

當我經過的Neo4j的管理委員會管理這個直接我得到正確的結果集返回。

我錯過了什麼?任何幫助,將不勝感激。

回答

1

我想這是因爲你在指數有單引號的

var connections = _graphClient.Cypher 
    .StartWithNodeIndexLookup("n", "indexName", "id:*") //<-- remove the single quotes 
    .Match("c=(n)-[:RELATIONSHIP_TYPE]-()") 
    .Return<MyRelationship>("c") 
    .Skip(5) 
    .Limit(10) 
    .Results; 

如果再有這種問題,最容易做的事情是切換StartWithNodeIndexLookup通話只有Start並且使用已知節點引用來檢查錯誤發生的位置。

+0

你釘了它,謝謝!我想知道爲什麼它是通過Web界面的有效查詢呢? – Piedone 2013-03-11 21:26:51

+0

實際上,查詢在Web管理員沒有撇號的情況下無效。看起來很有趣:-)。 – Piedone 2013-03-11 21:37:32

+0

Neo4jClient爲你添加引號,因爲它們是強制性的,所以你發送''id:*''(注意重複的引號),然後它失敗了。 http://hg.readify.net/neo4jclient/wiki/cypher有關於如何調試查詢的章節。 – 2013-03-26 07:06:06