Hacker News new | ask | show | jobs
by jlemoine 3666 days ago
This result is indeed not good but it could be solved easily with one Algolia setting (removeWordsIfNoResult=allOptional which perform the query with all terms as mandatory and reply it with optional terms if there is no result).

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.

1 comments

True though this assumes these direct words are mentioned in the text (assuming know synonyms). Algolia has basic synonym functionality but ES gives you a lot more power here.

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)

Algolia has actually a very decent synonyms support:

  * 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 synonyms
nice I stand corrected. The first list is what I knew about!

This 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.