Two years later, a lot has changed. I think Lucene and GrainServices will work better for this. I will try to implement it.