Realtime Search: Solr vs Elasticsearch
engineering.socialcast.com
engineering.socialcast.com
Is anyone using ES on production, how is the support for things like lat/long(geo) search. If you're on django then your options are limited if you want to use django-haystack. Solr is pretty much the only way to go. xapian geo support hasn't landed yet, and waiting for solr 4 to land.
I've been using JTeam SSP 1.0 plugin(http://blog.jteam.nl) for solr, with django-haystack(https://github.com/sidmitra/django-haystack) for the same and it's been really useful and responsive so far. I still want to give ES a try, but will have to look into support with haystack + for geo stuff.
I use ES via Python, and ended up writing my own backend for it that approximates the Django ORM.
For everything else, I'm using Sphinx. I chose Spinx because at the time (starting 2 years ago), it seemed like the best choice for real time indexing, set up was easy, and it integrated well with MySQL.
But now the Lucrene backend DBs are in decent completion with it---Elastic Search and Solandra.
This is the default behavior for IndexTank. When an indexing call returns, whatever you indexed WILL show up in search results. We don't give you the option to commit or not commit, we simply designed IndexTank to be fast enough when indexing in real time. I'd like to see us included in that comparison as well.
- The tokenizers, to be compatible with the query syntax - The index format for persistence on disk. It's a great format, no point in reinventing that. Analogous to how Open Office can save in .doc format.
We use this for NRT indexing currently on our site and it works fine - there's a small (500 millisecond or less) delay in changes appearing but it's close enough for us.
We don't use Solr, though - it's a custom search engine based on Lucene.
See: http://nlp.stanford.edu/IR-book/html/htmledition/dynamic-ind...
In my experience, this near real-time search picks up changes within the last 500 milliseconds or so. I think it's basically a workaround for the latency related to disk I/O on commits.
What is Twitter doing to make that faster? I'd appreciate any links you could post which explain their changes.