Why not just wrap Lucene?  It's in Java, provenly awesome over the course of a decade and supports in-memory, file-backed, whatever.  Probably a lot easier than writing your own tokenizers and indexing algorithms.