2010/10/26 Marko Rodriguez <okramma...@gmail.com>

> Hello,
>
> The new Neo4j M2 release supports Edge (Relationship) indexing. See:
>
>
> http://components.neo4j.org/neo4j-examples/1.2.M02/apidocs/org/neo4j/graphdb/index/IndexManager.html#existsForNodes%28java.lang.String%29
>

Yep, the integrated index framework in Neo4j supports compound queries and
indexing of relationships (edges). Even more information at
http://wiki.neo4j.org/content/Index_Framework


>
> With next release of Blueprints, Vertex/Node and Edge/Relationship indexing
> will be possible through Neo4jGraph in Blueprints.
>
> Hope that clears things up,
> Marko
>
> http://markorodriguez.com
> http://pipes.tinkerpop.com
>
> On Oct 26, 2010, at 11:19 AM, Walaa Eldin Moustafa wrote:
>
> > Thank you for this useful information. I understood that Neo4j
> > implements the Lucene index which supports node indexing only but not
> > edge indexing. Also, from what I understand from the Blueprints API,
> > it can support both node and edge indexing, and it also supports Neo4j
> > as an underlying implementation. Does that mean that by using the
> > Blueprints API, we can have support for Neo4j edge indexing?
> >
> > Thanks,
> > Walaa.
> >
> >
> > On Tue, Oct 26, 2010 at 12:47 PM, Marko Rodriguez <okramma...@gmail.com>
> wrote:
> >> Hi everyone,
> >>
> >> *** I've included the Neo4j users group in the mailing in case they have
> any thoughts on the matter. ***
> >>
> >> So these are the classes currently associated with Indexing in the next
> release of Blueprints [ http://blueprints.tinkerpop.com ]. Much of this
> was inspired by the multi-indexing framework provided in the latest Neo4j.
> After a presentation of the Blueprints interfaces, a discussion ensues.
> >>
> >> public interface IndexableGraph extends Graph {
> >>    public <T> Index<T> acquireIndex(String indexName, Class<T>
> indexClass);
> >>    public Iterable<Index> getIndices();
> >>    public void dropIndex(String indexName);
> >> }
> >>
> >> public interface Index<T> {
> >>    public String getIndexName();
> >>    public Class<T> getIndexClass();
> >>    public void put(String key, Object value, T object);
> >>    public Iterable<T> get(String key, Object value);
> >>    public void remove(String key, Object value, T object);
> >> }
> >>
> >> public interface AutomaticPropertyIndex<T> extends Index<T> {
> >>    public void addAutoIndexKey(String key);
> >>    public void removeAutoIndexKey(String key);
> >>    public Set<String> getAutoIndexKeys();
> >> }
> >>
> >> A graph (e.g. Neo4j, OrientDB, TinkerGraph, etc.) can implement
> IndexableGraph (analogous to TransactionalGraph, but for indices as opposed
> to transactions). Indices can be created and retrieved (acquireIndex(),
> getIndices()) and dropped (dropIndex()) through the main graph class. Every
> index maintains standard get/put/remove methods as well as their String name
> and the class type that they index. For Neo4j, these are <? extends
> PropertyContainer> type indices. For OrientDB and TinkerGraph, any Java
> object (serializable for OrientDB) can be stored in an Index. Finally, to
> maintain the "user friendly" nature of Blueprints, there is an
> AutomaticPropertyIndex interface that can be used if so desired. This is
> like TransactionalGraph.Mode.AUTOMATIC, but for automatically indexing
> vertices/edges for the user. An AutomaticPropertyIndex will automatically
> maintain an index of your vertices/edges as you add, remove, update
> properties on those vertices/edges.
> >>
> >> For those familiar with Blueprints 0.2 and the past single-index model,
> the only difference is now a graph can have multiple indices. This will
> incur some minor changes to Gremlin and will be discussed in a later email.
> >>
> >> I've already implemented this for Neo4j and TinkerGraph to get "a feel"
> for the API and so far its feeling fine. There are a few oddities that need
> to be thought out (e.g. unique naming for indices, etc.). Thoughts are more
> than welcome.
> >>
> >> Take care,
> >> Marko.
> >>
> >> http://markorodriguez.com
> >> http://gremlin.tinkerpop.com
> >>
> >>
> >>
> >> _______________________________________________
> >> 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
>



-- 
Mattias Persson, [matt...@neotechnology.com]
Hacker, Neo Technology
www.neotechnology.com
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to