That's where the "graph" kicks in :)
What you did so far was to check for a subset of _all_ movies that are in this time period (which is quite large) and traversing all of them to Monica Belluci would be not efficient.
But the other way round is: grab the node for Monica Belluci and follow all ACTS_IN relationships and check if the movie's year is in that range.
in java.
for (Relationship rel : monica.getRelationships(Type.ACTS_IN, Direction.OUTGOING)) {
Node movie=rel.getEndNode();
int year = (Integer)movie.getProperty("year_numeric");
if (year > 1995 && year < 2002) result.add(movie);
}
in cypher:
start actor=node:Actors(name={name})
match actor-[:ACTS_IN]->movie
where movie.`year-numeric` > {from} AND movie.`year-numeric` < {to}
return movie
params:
name = "Monica Belluci"
from = 1995
to=2002
HTH
Michael