2
votes

I'm currently looking at the best way to index our data and from how I see it there are three options

1). Legacy indexes. (IndexManager API)

2). Auto indexes (neo4j.properties: node_auto_indexing=true, ode_keys_indexable=name,age, relationship_auto_indexing=true, relationship_keys_indexable=name,age)

3). New Schema Manager based index support, using labels.

Both options 1 and 2 has the benefit that indexes can be managed on both nodes and relationships. But the legacy indexes needs to be managed on application level (which is not so nice, especially if you are used to RDBMS).

Option 3 does not provide support for relationship indexes. I understand that the need for relationship indexes is marginal, but still very usable and powerfull (depending on how the graph is modelled). Are there plans to add relationship indexes under the new Schema Manager?

Will it work if for instance I index nodes using Schema Manager and labels and index relationships using the auto indexing (neo4j.properties)?

Its my understanding that the Schema Manager deprecates the old IndexManager (obviously cause its now called legacy indexes), but thus the auto indexing (neo4j.properties) now also fall under the legacy indexes? And what are the future plans for auto indexing and the Schema Manager?

Thanks.

1

1 Answers

1
votes

Will it work if for instance I index nodes using Schema Manager and labels and index relationships using the auto indexing (neo4j.properties)?

YES

I doubt that we'll support rel-indexes, we will probably add some form of vertex centric indexing instead. Usually it is a matter of the graph model that forces you to use rel-indexes.

IndexManager will go away when we have integrated fulltext and spatial indexes as will the old auto indexing.

Schema indexes will be automatically used by the cypher query planner and will also provide statistics to work with in the future.