Tatham has also added support for paging queries, so queries returning more 
than 100 results are retrieved via an enumerator per 100 results, this 
optimises the heap usage as well, by leveraging the groovy Take and Drop 
functions.

Cheers.

-----Original Message-----
From: [email protected] [mailto:[email protected]] On 
Behalf Of Tatham Oddie
Sent: Friday, 21 October 2011 4:37 PM
To: Neo4j user discussions
Subject: Re: [Neo4j] Neo4jRestNet Update

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: [email protected] [mailto:[email protected]] On 
Behalf Of KanTube
Sent: Thursday, 20 October 2011 9:36 AM
To: [email protected]
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
[email protected]
https://lists.neo4j.org/mailman/listinfo/user
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to