Streaming search results

Hey folks.

I wonder if it would be useful to be able to push search results to a client as the data is indexed?

This could be used to implement a Twitter-style search, where first an initial set of results is loaded from the database, and then if new data would match the search query, it is prepended to the top of the results.

1 Like

Hi @justin,
Can you tell us more about what kind of problem such implementation would solve? Would that be a way to make search result come faster?

It’s mainly useful for a kind of continuous search, where the user flow is to search and get results, but not to necessarily navigate away from the results immediately.

I mentioned Twitter as an example. On their website you can search tweets by keyword, and if you leave the results page open (on the “latest” tab) then an indicator is shown whenever any newly posted tweets match the current search.

This could also be used to create media walls, that filter on some criteria and automatically update the display whenever new content is available.

These sorts of things could be achieved today by repeating a search on a frequent interval, but a push mechanism would provide faster delivery and use fewer resources.

For full disclosure, I’m not an Algolia user and I work for a company that provides push developer tools. So this is just a suggestion in case you find it interesting.

1 Like

Hi Justin! Thanks for posting (and disclosing). For readers, @justin’s company is fanout.io. It’s a pretty neat service for building realtime apps and is well documented.

I can see the case for interleaving new results like in a media wall, or detecting if search results have changed from one place, like a backend, and notifying clients that new results are available. It’s potentially more efficient to do that than to have every client poll against an index.

Hi @dzello. Have you moved forward on this? Another cool feature would be webhooks that Algolia call whenever saved queries are matched.