We manage that today using Neo.  Node "types" are represented by an array 
property on the node - therefore a node can be of many "types".  We then 
utilize relationships to provide an "implements" relationship that enables 
arbitrarily deep and complex inheritance/implementation scenarios.  

My core point was that something better than "primitive type" is clearly 
needed, and a "node type" is a step in the right direction.  As Peter points 
out, it's one.

That said, if you make it overly complex to support every possible scenario, 
then you've pretty much defeated the benefit of "auto indexing" in the first 
place.  The logic to decide which index to use (and the associated code behind) 
could easily be as complex or more complex to maintain than application level 
code.  Callbacks and such are just another form of "code", so it really doesn't 
seem to me to be the "auto indexing" scenario.  "Auto" indexing should be 
declarative, shouldn't it?

I prefer to make the "easy stuff easy and the hard stuff possible" - and that 
implies using simple, easy-to-implement and easy-to-maintain patterns for the 
stuff that 95% of applications need, and API-based approaches for the other 5%.



-----Original Message-----
From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On 
Behalf Of Niels Hoogeveen
Sent: Monday, July 18, 2011 8:50 AM
To: user@lists.neo4j.org
Subject: Re: [Neo4j] Auto-index fulltext?


Rick,
I think adding a "node type" to neo4j is not a good idea. Different 
applications have different typing needs. 

My own application for example, supports multiple "node types" per node, while 
"node types" can be subtyped as well. 
This creates a forest of types for each node, that needs to be traversed each 
time the typing information of a node is requested. 
Morever the INSTANCE_OF relationships are stored as and Indexed Relationship 
(https://github.com/peterneubauer/graph-collections/tree/master/src/main/java/org/neo4j/collections/indexedrelationship),
 
because certain types can have millions of instances.
I am certain that such a typing construct is not everybody's cup of tea and I 
wouldn't want to see it formally supported in core.
Neither would I want to see support for typing constructs other than the one I 
use.
Being a schemaless database is one of the strengths of Neo4J, and typing 
shouldn't become part of the core distribution.That said, there are good 
reasons to create different typing libraries as a layer on top of Neo4J, the 
meta model component,
though in need of some attention, is one such layer. 
For auto-indexing purposes, I would much rather see the addition of an 
installable call back function that takes:the node, the key, the value and the 
index as input and returns the value to be indexed or null if no indexing 
should take place.
Niels




> From: rick.bullo...@thingworx.com
> To: chris.gio...@neotechnology.com; user@lists.neo4j.org
> Date: Mon, 18 Jul 2011 05:15:08 -0700
> Subject: Re: [Neo4j] Auto-index fulltext?
> 
> Chris, I think that auto indexing is another great reason for a formal 
> concept of "node type".  It could provide an unambiguous link between a node 
> and its indexing strategy(ies).
> 
> 
> 
> ----- Reply message -----
> From: "Chris Gioran" <chris.gio...@neotechnology.com>
> Date: Mon, Jul 18, 2011 6:16 am
> Subject: [Neo4j] Auto-index fulltext?
> To: "Neo4j user discussions" <user@lists.neo4j.org>
> 
> No, that is not what i meant. The main idea is to provide the means to
> configure at least some aspects of the auto index instead of relying
> on the default settings only. There will still be one auto index for
> each primitive category.
> However, one feature under consideration is to actually allow an
> arbitrary number of auto indexes, each of which will allow for
> individual configuration. So, when that comes along you will have what
> you described (and more, actually).
> 
> thanks,
> CG
> 
> On Mon, Jul 18, 2011 at 12:29 PM, Aseem Kishore <aseem.kish...@gmail.com> 
> wrote:
> > Awesome to hear, Chris, thanks. Just to clarify/confirm then: in the future,
> > we will be able to have *both* an exact auto-index and a fulltext auto-index
> > side-by-side?
> >
> > Cheers,
> > Aseem
> >
> > On Mon, Jul 18, 2011 at 3:18 AM, Chris Gioran <
> > chris.gio...@neotechnology.com> wrote:
> >
> >> Hi Aseem,
> >>
> >> On Sat, Jul 16, 2011 at 9:46 AM, Aseem Kishore <aseem.kish...@gmail.com>
> >> wrote:
> >> > Is the 1.4 auto-index only "exact"? Or can it be configured to be a
> >> > "fulltext" index?
> >>
> >> Yes, currently the auto-indexes are only exact, there is no
> >> straightforward way to configure them explicitly. This is a known
> >> shortcoming and will be remedied pretty soon.
> >> Another addition that is coming, by the way, is the visibility of
> >> changes of the auto index within the transaction, instead of waiting
> >> for commit time as is now.
> >>
> >> > (Btw, it would be awesome if we could have two auto-indexes: one exact,
> >> one
> >> > full-text. It would be great in general if all indexing could be auto.
> >> Not
> >> > sure when you would ever want/need manual indexing.)
> >>
> >> Well, a lot of use cases call for manual indexing, when for example it
> >> is conditional or the use of multiple indexes is required. If,
> >> however, auto indexing covers all your needs then by all means, do
> >> just that.
> >>
> >> cheers,
> >> CG
> >>
> >> > Aseem
> >> > _______________________________________________
> >> > Neo4j mailing list
> >> > User@lists.neo4j.org
> >> > https://lists.neo4j.org/mailman/listinfo/user
> >> >
> >> _______________________________________________
> >> Neo4j mailing list
> >> User@lists.neo4j.org
> >> https://lists.neo4j.org/mailman/listinfo/user
> >>
> > _______________________________________________
> > Neo4j mailing list
> > User@lists.neo4j.org
> > https://lists.neo4j.org/mailman/listinfo/user
> >
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
                                          
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to