switch to visitor pattern for traversing relationships (for internal maintenance). This should save quite a lot of memory, since we're directly adding results to Lucene indexes rather than caching in memory during traverse, then pushing them down to the index.