I'm building a Django site and I am looking for a search engine.
A few candidates:
-
Lucene/Lucene with Compass/Solr
-
Sphinx
-
Postgresql built-in full text search
-
MySQl built-in full text search
Selection criteria:
- result relevance and ranking
- searching and indexing speed
- ease of use and ease of integration with Django
- resource requirements – site will be hosted on a VPS, so ideally the search engine wouldn't require a lot of RAM and CPU
- scalability
- extra features such as "did you mean?", related searches, etc
Anyone who has had experience with the search engines above, or other engines not in the list — I would love to hear your opinions.
EDIT: As for indexing needs, as users keep entering data into the site, those data would need to be indexed continuously. It doesn't have to be real time, but ideally new data would show up in index with no more than 15 – 30 minutes delay
Best Answer
Good to see someone's chimed in about Lucene - because I've no idea about that.
Sphinx, on the other hand, I know quite well, so let's see if I can be of some help.
I've no idea how applicable to your situation this is, but Evan Weaver compared a few of the common Rails search options (Sphinx, Ferret (a port of Lucene for Ruby) and Solr), running some benchmarks. Could be useful, I guess.
I've not plumbed the depths of MySQL's full-text search, but I know it doesn't compete speed-wise nor feature-wise with Sphinx, Lucene or Solr.