Indexing in Spring Data Neo4j

Posted By Abhay Garg | 12-Mar-2015

Indexing -> Indexing is used in Neo4j to quickly find nodes and relationships to start graph operations from Schema (Label based) Indexing .


STEP 1  Create Index  -> You can use either of them 


Using Cypher-> By using Cypher you can create index with this Cypher Query 

                   CREATE INDEX ON :Person(name);

 Using Spring Data Neo4j


class Person{
String name

So it creates schema Indexing on Person Domain at name property.


STEP 2  Use Index -> In cypher you can find Data like match (person:Person) where"oodles" return person .

So now you can get data in O(1) , otherwise it will search on all Person Nodes.


Legacy Indexing in Neo4j -> The default index implementation is provided by the neo4j-lucene-index. So you can use lucene Query to get the Data . 


STEP 1  Create Index -> In Spring Data Neo4j 



class Job{
String name
@Indexed(indexName = jobSearch, indexType=IndexType.FULLTEXT,numeric=false)
String publishDate
STEP 2  Use Index -> In cypher you can find Data like ,
START jobWithDate=node:jobSearch("publishDate:[2015-03-18T18:30:00.000Z TO 2015-03-18T18:30:00.000Z]")  match (jobWithDate) where"oodles" return jobWithDate.
So Indexing helps to filter on specific Nodes otherwise it filter from all Nodes .
NOTE -> Please note that the lucene based manual indexes are deprecated with Neo4j 2.0 and Spring Data Neo4j 3.0. The default index is now based on labels and schema indexes and the related old APIs have been deprecated as well. The "legacy" index framework should only be used for fulltext and spatial indexes which are not currently supported via schema based indexes.

For More information visit this  link



Request for Proposal

Recaptcha is required.

Sending message..