This was probably 3 years ago or less so the product might have changed, but what I got out of that chat was that Algolia is for websites that want to add a search functionality with a nice UI without much hassle.
But if you are doing something complex it's does not compare to Solr or Elasticsearch
Again this was a while ago.
However, if I had users that needed to lean on search to find things they didn't know about I would want to look into something that could infer meaning from the text input.
http://sujitpal.blogspot.com/2016/05/elasticsearch-based-ima...
Here Elasticsearch is used as a framework where "search" really means some kind of distributed feature similarity. But even text search where your incorporating a lot of data science, external signals, or semantic awareness can fall more into the category of distributed feature similarity.
Algolias strength is in a simpler path to straightforward and easily understood search. I'm not sure it's the path to amazing and deeply customized search (or search-driven features). Algolia gets far more right out of the box at a configuration level many need when they can't put a team around building an amazing Solr/ES experience.
My hope is Solr/ES can learn a thing or two in the ease of use dept with relevance!
http://opensourceconnections.com/blog/2016/05/31/algolia-sea...
It's like the liner notes for the blog article...
It is great as an out of the box search solution that will probably fit 90% of cases. It is blindingly fast and my clients love it.
I expect there are some cases where elastic or solr will be a better fit; but these are most definitely edge cases for very specific search requirements. Algolia is a killer app for generic 'good' search.
Orthogonally agree. I can usually tell when a site's running Algolia by the asymmetry between the quality of the results (useless) and the familiarity of the site (high). It feels like the product is endorsed more for social, versus technical, reasons.
As with any engine, there is a lot of customization possible to handle complex use cases and it won't be handled out of the box.
You can read this list of 10 tips to have a great relevance, all of them are doable with Algolia: https://blog.algolia.com/algolias-top-10-tips-to-achieve-gre...
Algolia is great a known-item searches. Searches that are like looking up a contact in your phone list. This is a common use case with search, but one of only many.
Your use case is closer to grasping at straws because you don't know the language to use. You can't quite remember the name for something. This is also very common, and not handled well with purely string matching. Another example is in this blog article[1] where I talk about searching for "manual lawn mower" not realizing the right terminology is a "reel mower." Mapping vernacular is a hard problem, and I feel like Solr/ES while harder are better equipped for the problem.
(I also often find instant search distracting)
[1]http://opensourceconnections.com/blog/2014/06/10/what-is-sea...
I have not used Algolia much but that's not a particularly compelling selling point, most search engines tend to get it right if you know exactly what to query. The problem is this is, like, 1% of the difficulty of making a good search engine.
Great article by the way!
In addition to being good at known item searches, my pitch for Algolia would be
(1) it's Easier to perform relevance tuning. You'd be surprised how annoying the Solr/ES defaults are. And the API is more advanced. (2) it has much better typo tolerance (again this gets at "known item" where you fat finger something)
site:producthunt.com mac voice control
Algolia comes with a lot of pre-defined tuning that are good for most use cases (see https://blog.algolia.com/inside-the-algolia-engine-part-3-qu... for more details).
That said there is always some tuning to have perfect result for a specific use case. There is no engine that provide perfect results out of the box without any tuning.
Further the more words you remove, the less constrained the results get possibly creating a lot of noise. Though I assume you remove based on document frequency, which helps.
This would be a problem with this strategy regardless of search engine (ES or Algolia)
* mono & multi-words synonyms,
* typo-tolerance is compliant with synonyms,
* matching synonyms are highlighted,
* prefix search works also on synonyms (even on multi words).
A v2 of the synonyms API will be released in the next few days including: * dedicated API endpoints (leveraging existing synonyms but also Algolia's "alternative corrections" and "placeholders")
* new edition UI (with search & filtering capabilities)
* one/bi direction synonymsThis is actually an interesting dividing line. As you get more sophisticated modeling fuzzier concepts over just synonyms (synonyms are just one tool for this) then I think you get out of algolias sweet spot. When text pushed into a feature space (which happens quite a lot when you're mapping vernaculars) you begin to gain more from Solr and ESs depth of customizability.
EDIT: In case the question was which library did I use, I used BottledWater and it's worked great for me so far [2]
[1] https://www.postgresql.org/docs/9.4/static/logicaldecoding-e...
I already have Postgres search queries running on the order of 1-3ms for large queries, basically faster than Algolia, with seemingly the same feature sets.
I don't understand the value proposition over something like Postgres, for sites that already have Postgres databases. (And I'm sure other databases might offer similar built-in search capabilities, I just don't know those other RDBMSs)
Postgres built-in search features are really for large document searching -- we've tried using it for indexing e.g. an array of tags for auto-complete and the search times were in the ~500ms+ range, as a matter of fact the non-indexed regex search was only slightly slower. I thought the later was rather surprising - but asking on the mailing-lists, I was told that this was basically working as intended.
edit: I don't fully understand the value-proposition of Algolia either, most of the trouble with going outside of your production database for search - is the problem of keeping your data in sync and current with the production database; compared to that setting up an Elasticsearch cluster really isn't such a big deal, there are also half-way solutions, for example Amazon has an Elasticsearch-service.
Textual relevance is a very complex domain and the Postgres's built in text search features is a simple keyword matching engine compared to Algolia engine that contains a lot of alternative matching. The mesure of textual relevance is also very different of what you have in the Postgres text search.
At the end, this is not only about speed but mainly about relevance