Instead of a sql derivative, you might think about using an inverted index IR library like Lucene (or one of the many clones out there). I know Lucene is Java, but you could write a managed C++ library to interop with Lecene.Net.
As far as speed, I'm very happy with the performance of Lucene for its reads. Its not as optimized for its writes, but its still pretty good, as long as your not trying to build an index of millions of "documents".