如果要对这些人员节点进行操作,可以将它们放入索引中(默认为 Lucene),然后使用 Lucene 检索和排序节点(例如,请参阅How do I sort Lucene results by field value using a HitCollector?关于如何在java中进行自定义排序)。例如,这会让你按年龄排序的人等。Neo4j 中的代码可能看起来像
Transaction tx = neo4j.beginTx();
idxManager = neo4j.index()
personIndex = idxManager.forNodes('persons')
personIndex.add(meNode,'name',meNode.getProperty('name'))
personIndex.add(youNode,'name',youNode.getProperty('name'))
tx.success()
tx.finish()
'*** Prepare a custom Lucene query context with Neo4j API ***'
query = new QueryContext( 'name:*' ).sort( new Sort(new SortField( 'name',SortField.STRING, true ) ) )
results = personIndex.query( query )
对于组合索引查找和图遍历,Cypher是一个不错的选择,例如
START people = node:people_index(name="E*") MATCH people-[r]->() return people.name, r.age order by r.age asc
为了返回节点和关系的数据。