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