[Neo] Neo4j for personal information database

Peter Neubauer peter.neubauer at jayway.se
Wed Aug 13 10:23:49 CEST 2008


Tobias,
sounds like an issue in Trac regarding the String node-sorting
utility. you or me?

/peter

GTalk:        neubauer.peter
Skype        peter.neubauer
ICQ            18762544
Phone       +46704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter      http://twitter.com/peterneubauer

http://www.neo4j.org     - New Energy for Data - the Graph Database.
http://www.ops4j.org     - New Energy for OSS Communities - Open
Participation Software.
http://www.qi4j.org        - New Energy for Java - Domain Driven Development.




On Wed, Aug 13, 2008 at 9:37 AM, Tobias Ivarsson
<tobias.ivarsson at neotechnology.com> wrote:
> On Wed, Aug 13, 2008 at 8:51 AM, Nils Kaiser <NilsKaiser at gmx.net> wrote:
>
>> Comments inline.
>>
>> Johan Svensson schrieb:
>> >> A part I am struggeling with in the design of the app, is that the UI
>> >> should support viewing of very large collections, for example all email
>> >> messages in "work" collection. These will have to be sortable by
>> >> different fields, in case of a mail message even sorting by the name of
>> >> the contact (which needs to follow a relationship). I don't really know
>> >> how to use Neo4j (or another persistence mechanism, or another layer on
>> >> top of Neo4j) to implement such functionality.
>> >>
>> >>
>> >
>> > This can either be solved by reading in the full collection (using a
>> > traverser) then sort it or keep the items sorted in the node space
>> > (using linked lists like Timeline utility in index-util component).
>> >
>> Are there some examples of this somewhere? Or maybe something I might
>> use to leverage the task?
>>
>> With a relational DB, I wouldn't have to care as the sorting could be
>> made by the database. I could then use a cursor to implement some kind
>> of lazy loading in my UI.
>
>
> Yeah, and it does it in the same way, either you define that you want the DB
> to store a sorted index, or it does the sorting by reading all data and sort
> it when you request it. And defining that you want something to be sorted in
> Neo is by using the index-utils to define sorted datastructures. Using for
> example the timeline is as simple as:
>
> import org.neo4j.util.timeline.TimelineIndex;
> import org.neo4j.util.timeline.Timeline;
>
> ...
>
> NeoService neo = ...
> Node timelineStartNode = ...
> TimelineIndex timeline = new Timeline("Timeline name", timeline, neo);
> ...
> timeline.addNode(someNode, getSortKeyFromNode(someNode));
> ...
>
> private long getSortKeyFromNode(Node node) {
>    ....
> }
>
> For information on how to include index-util in your project, see this
> previous thread:
> http://lists.neo4j.org/pipermail/user/2008-August/000666.html
>
>
>> I guess the solution to sort the objects as a
>> linked list has the disadvantage not to be able to sort on multiple fields.
>
>
> Well, the same object could be contained in more than one list...
>
>>
>>
>> Would lucene help here?
>> _______________________________________________
>> Neo mailing list
>> User at lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
>>
>
>
> A note to my fellow Neo developers:
> It could be a good idea to create some sorted structure that keeps nodes
> sorted based on a String, since this is quite a common use case.
>
> --
> Tobias Ivarsson <tobias.ivarsson at neotechnology.com>
> Hacker, Neo Technology
> www.neotechnology.com
> Cellphone: +46 706 534857
> _______________________________________________
> Neo mailing list
> User at lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
>


More information about the User mailing list