Hello! I’m building an e-commerce application with around a million items. I need to give users the ability to apply filters in any order, sort by different fields, and paginate results.
For example, a user should be able to filter by a single-select language field, a multi-select category field, and free-text search by item name. They should also be able to sort by price, name, date added, etc. All filter combinations are supported, and every filter is optional.
I tried implementing this purely with Convex, but I’m having a hard time with its indexes, since they can only be used with fields in a specific order. In-memory sub-filtering does not work well with pagination and seems like the wrong direction.
I need help making an architectural decision: am I missing some Convex patterns, or do I need to introduce another search technology, such as Elasticsearch?