3

I have been looking at search solutions like Sphinx, Solr and Elasticsearch but they are all way too complex for what I need.

I'm basically looking for a server software, best distributed, that allows me to just throw in chunks of text associated with a single small identifier each. Then find keywords quickly and return the identifiers given for the chunks that yielded a match with one or more of the keywords.

Does something like this exist?

thwd
  • 177
  • 1
  • 5

3 Answers3

4

You can try Mysql or MongoDB full-text search capabilities.

http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo

DukeLion
  • 3,239
  • 1
  • 17
  • 19
3

Postgres has an outstanding out of the box support for full-text search.

I do use Elasticsearch, I did migrate from sphinx, and yes, the learning curve is higher, but it worths as It has a really flexible way to query with JSON.

VP.
  • 403
  • 3
  • 15
3

Unfortunately, you are just not going to get the same level of performance with the MySQL fulltext search as you will from the dedicated search solutions, but that begs the question--do you care?

sphinxsearch will give you faster indexing, more advanced queries, incremental updates, and it will work out of the box with MySQL--but it is still a separate service that needs to be run and maintained. mysql will be a bit slower and indexing will slow down with larger collections, but its built in and doesn't require any additional services to run in the background. So the question is, do you even care if a query takes 1 second or 10 seconds?

Here are some numbers from the Sphinx blog, as well as some benchmarks from Wikipedia's search backend.

Andrew M.
  • 10,982
  • 2
  • 34
  • 29
  • yes I do care, 2 seconds would be too much. my dataset is in the order of hundreds of thousands - not that big compared to other appliances. I do require simplicity, it should be straightforward and simple to manage. I will not be using MySQL. – thwd May 18 '12 at 21:58