Closed F21 closed 11 years ago
No, right now there is no Gremlin support. Its planned, but with no estimation =(
So, if you're wiling to help - you're welcome!
Ahh :( Unfortunately, I have no experience with decoding the binary protocol at all :(
I think that the driver should execute the classic "command" function passing "com.orientechnologies.orient.graph.gremlin.OCommandGremlin" instead of "c". That's all.
Luca, it would be nice, but doesn't Gremlin records uses slightly different record (de) serialization?
No, they are documents after all.
Well, this is king of "blind coding", but... there is separate branch for gremlin queries, top commit is 1314da396a .
Please let me know, is it works. Reason for "blind" approach is lack of free time to set up gremlin.
Luca, If I've missed some 5-minutes super-easy way for Gremlin with Orient, could you give me a link?
F21, please try gremlin_query
branch.
Let me know if its ok.
Confirmed as working :)
Test code (I added 2 vertices to the database using OrientDB Studio):
require 'OrientDB/OrientDB.php';
$db = new OrientDB('localhost', 2424);
$config = $db->DBOpen('test', 'admin', 'admin');
$records = $db->selectGremlin('g.V', '*:-1');
var_dump($records);
Output:
array (size=2)
0 =>
object(OrientDBRecord)[15]
private 'isParsed' => boolean false
private 'className' => null
public 'type' => string 'd' (length=1)
private 'clusterID' => int 8
private 'recordPos' => int 0
private 'recordID' => string '8:0' (length=3)
public 'version' => int 0
private 'content' => string 'V@' (length=2)
public 'data' =>
object(OrientDBData)[17]
private 'data' =>
array (size=0)
empty
private 'record' =>
&object(OrientDBRecord)[15]
1 =>
object(OrientDBRecord)[16]
private 'isParsed' => boolean false
private 'className' => null
public 'type' => string 'd' (length=1)
private 'clusterID' => int 8
private 'recordPos' => int 1
private 'recordID' => string '8:1' (length=3)
public 'version' => int 0
private 'content' => string 'V@' (length=2)
public 'data' =>
object(OrientDBData)[19]
private 'data' =>
array (size=0)
empty
private 'record' =>
&object(OrientDBRecord)[16]
Great work! :) I hope to see more improvements and more object-oriented functions like $vertex->relateTo($anotherVertex)
etc.
Well, I'm glad that its working.
As for support of more gremlin functions, it will require a lot more work, and I'm not really sure that such a support is in scope of this low-level driver.
So, I'll wait a couple of days, and if current gremlin code will work as intended, I'll merge branch gremlin_query
into master
Merged experimental gremlin into master
I am looking for a library to allow my application to talk to OrientDB.
This one looks to be very promising (and the binary protocol is quite fast). I would like to contribute some graph db functionality (add vertices, edges, etc) to the project (I will still need to look at the source code to learn the coding standards and style of course:) ).
Having said that, is there gremlin query support at the moment? I plan to have those graph functions query the database using gremlin.