We are running a marketplace (with auctions and fixed price items).
Since you have different type of search users and use cases (some search for precise items, others want some inspiration), we are thinking about this approach:
First step: give rank to items based on different criteria
(ie. how often is the item put in wish list, has the seller a good reputation...)
Second step: split items into four buckets (new, used, bids, wish list).
Third step: show in search result 10 results out of each bucket, combined with the rank of the items,
so that we have the highest quality items and variety.
Any idea how to solve this, while maintaining the the speed of Elastic Search?