2011-06-07 93 views
1

我無法使用PHP查詢來使用PHP API客戶端。使用Neo4J-REST-PHP-API-客戶端的Neo4j索引查找

首先,我正在創建一個節點並對它進行索引。這工作正常。然後,當我測試查找

curl -H Accept:application/json http://localhost:7474/db/data/index/node/my_nodes/guid/108 

我得到:

[ { 
    "indexed" : "http://localhost:7474/db/data/index/node/my_nodes/guid/108/57", 
    "outgoing_relationships" : "http://localhost:7474/db/data/node/57/relationships/out", 
    "data" : { 
    "guid" : 108, 
    "title" : "New User ABC", 
    "owner_guid" : "2" 
    }, 
    "traverse" : "http://localhost:7474/db/data/node/57/traverse/{returnType}", 
    "all_typed_relationships" : "http://localhost:7474/db/data/node/57/relationships/all/{-list|&|types}", 
    "property" : "http://localhost:7474/db/data/node/57/properties/{key}", 
    "self" : "http://localhost:7474/db/data/node/57", .... 

到目前爲止好。但是,當我在PHP API客戶端中定義如下函數來執行查找時。

public function getNodeByKey ($key, $value) 
{ 
    $uri = $this->base_uri . 'index/node/my_nodes/' . $key . '/' . $value ; 
    list($response, $http_code) = HTTPUtil::jsonGetRequest($uri); 
    if ($http_code == 200) 
     return Node::inflateFromResponse($this, $response); 
    else { 
     throw new HttpException($http_code); 
    } 
} 

和下面是如何我打電話上述功能:

$graphDb = new GraphDatabaseService('http://localhost:7474/db/data/'); 
... 
$node = $graphDb->getNodeByKey ('guid', $uid);    
$relationship = $node->createRelationshipTo($another_node, 'works with'); 
$relationship->save(); 

我從getNodeByKey的200 HTTP響應()。但是,當我嘗試保存關係時,我得到了404。我嘗試使用dump_node()進行測試,並試圖查找節點,即$ node爲null。我無法弄清楚哪裏會出錯。任何指針?

由於提前, 南大

回答

0

南大,你可以嘗試讓索引節點出使用curl另外,根據http://docs.neo4j.org/chunked/snapshot/rest-api.html

+0

皮特,是的,我是能夠訪問使用使用curl索引節點,但無法得到它的工作與PHP API客戶端。但是,我發現了這個問題。我會很快發佈答案。 – 2011-06-10 04:09:26

0

我終於能夠使用PHP API客戶端得到這個工作。我不得不將函數inflateFromResponse修改爲以下內容。我不知道,如果它與Neo4j的版本問題現在用的(即1.2)