[Neo4j] Neo4jRestNet Update

Tatham Oddie tatham at oddie.com.au
Fri Oct 21 07:36:36 CEST 2011


Hi Kan,

FYI - we added parametized Gremlin queries in our implementation and have seen a nice memory heap improvement on the Java side as a result.

That is ... instead of:

g.v(123).outE[[label:'FOO']]

we send:

{
  query: 'g.v(p0).outE[[label:p1]]',
  params: {
    p0: 123,
    p1: 'FOO'
  }
}

This allows the query to be cached by neo4j and then just called with different parameters later.


-- Tatham


-----Original Message-----
From: user-bounces at lists.neo4j.org [mailto:user-bounces at lists.neo4j.org] On Behalf Of KanTube
Sent: Thursday, 20 October 2011 9:36 AM
To: user at lists.neo4j.org
Subject: [Neo4j] Neo4jRestNet Update

fwiw...

I updated my .Net wrapper
https://github.com/SepiaGroup/Neo4jRestNet/

you can now use LINQ on the flilter and sort commands for example

Node MyNode = Node.GetNode(123);
GremlinScript script = new GremlinScript(MyNode)
	.Out("Like")
	.Filter(it => it.GetProperty("MyProp").ToLowerCase() == "TestValue" ||
it.GetProperty("AnotherProp").Contains("SomeValue"))

IEnumerable<Node> ReturnNodes = Gremlin.Post<Node>(script);


You can also return a DataTable 

GremlinScript script = new GremlinScript();
script.NewTable("t")
	.NodeIndexLookup(new Dictionary<string, object>() { { "FirstName" , "Jack"
}, { "LastName", "Shaw" } })
	.Filter(it => it.GetProperty("UID") == "jshaw") 
	.As("UserNode")
	.OutE("Like")
	.As("LikeRel")
	.InV()
	.As("FriendNode")
	.Table("t", "UserNode", "LikeRel", "FriendNode")
	.Append("{{it}}{{it.getProperty('{0}')}}{{it.getProperty('{1}')}} >> -1; t","Date", "FirstName");

DataTable tbl = Gremlin.GetTable(script);


The above table example will submit the following Gremlin script to Neo4j:

t = new Table();
g.V[['FirstName':'Jack','LastName':'Shaw']]
	.filter{it.getProperty('UID') == 'jshaw'}
	.as('UserNode')
	.outE('Likes')
	.as('LikeRel')
	.inV()
	.as('FriendNode')
	.table(t,
['UserNode','LikeRel','FriendNode']){it}{it.getProperty('Date')}{it.getProperty('FirstName')}
>> -1; t");

And the returned table will have column names of "UserNode", "LikeRel", "FriendNode" with typed values of Node, DateTime, string (assuming the properties are stored with the correct types)




--
View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Neo4jRestNet-Update-tp3436032p3436032.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
_______________________________________________
Neo4j mailing list
User at lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


More information about the User mailing list