As far as the original question goes Sphinx doesn't have to be able to
talk to your database if you can provide a command line tool that will
produce an appropriately formatted xml stream for sphinx.
And it still is faster at indexing, as it isn't capable of on-the-fly
updates (if something changes, you´ll have to rebuild your index).
I see Sphinx as an option if your full text search functionality isn't
that complicated (Sphinx can't do partial matches or fuzzy search) or
your indexed models don't change much.
Solr is a full blown full text search tool with most of the features
you'll see in "enterprise" tools like fuzzy searching (that enables
things like Google's "did you mean?" feature), stop words removal,
faceting and a simple way to write your own customized filters (and
loads of documentations if you need to tweak it).
I tried Ferret and it had loads of problems, specially with concurrent
access, tried Sphinx but the lack of on-the-fly updates, partial
maches (there's a hack to get this working, but it's a hack) and fuzzy
search lead me to try Solr and now I have no reason to look back
Solr is a full blown full text search tool with most of the features
you'll see in "enterprise" tools like fuzzy searching (that enables
...
I will give Solr a go, thanks. One of the things I like about
ThinkingSphinx though is the ability to combine Sphinx's free-text
searching with other search criterias on other attributes in the model.
But I can probably do that myself in another way.