[Neo4j] [Neo4J] Neo4J Spatial - Snapshot 0.7, GeoPipeline and Tinkerpop

Robert robert at presynt.com
Sun Oct 16 23:54:25 CEST 2011

First off I want to say that I am really impressed with the leaps and bounds made with Neo4J spatial since I last looked at it. I've been really impressed by the improvements with memory use and performance on the OSM import side and I've been very intrigued by the use of the Tinkerpop Pipes as a foundation for query mechanisms. Still too early days to see how it's all going to work out but…

I know it's a work in progress, but if I may ask a few questions?

1/ Looking at the GeoPipeline and the associated classes I can see how it makes use of the RTree index at the start of the pipeline to help with the various searches. Will I be able to integrate using other indexes such as Lucene ones into the pipeline trivially?
2/ Been trying out a few queries of my own and I've noticed that I can't currently filter based on non-geo node properties. For example if I create a node with a property like:

		spatialDatabaseRecord.setProperty(EXPIRY_DATE_TIME_PROPERTY, formatter.print(getExpiryDateTime()));

And then I tried to filter based on it using:

		GeoPipeline geoPipeline = startNearestNeighborSearch(shoutDatabaseLayer, locationCoordinate, radiusInKm)
		        .propertyFilter(EXPIRY_DATE_TIME_PROPERTY, ISODateTimeFormat.basicDateTime().print(new DateTime()), LESS_THAN_EQUAL); 

I find that it will not filter on this property. Looking at the current implementation of the FilterProperty class it appears that I can only filter based on result properties from further up the pipeline, rather than on node properties - is this intentional? Have I missed a step in making my node's properties available on the GeoPipeFlow instances? Or is it that I'm just jumping the gun and this functionality is coming soon?

Many thanks,

Robert Boothby

More information about the User mailing list