Personalisation means that each user gets a unique set or results for any given query. That implies that results cannot be cached between users, which should result in slow response times or vast resource usage. How does Loop54 solve this problem?
It's true that 1:1 personalisation means that we can't cache the finished results from one user to another. However, many parts of generating the results can be cached. For instance, result candidates based on search query or other input can be shared between users, so we don't have to run the algorithms that find these every time. In addition, faceting, filtering and sorting data can be pre-computed and cached. This means that only the final ranking and result elimination based on personal preferences and intent has to be computed on-the-fly, a comparatively cheap operation if the data structure is properly thought out. While this setup prevents us from using off-the-shelf cache systems and CDNs, it does not require enormous resources and the benefits are well worth it.