Episerver Find is my preferred way to write searches for Episerver. It allows me to write search queries quickly using a LINQ like syntax I am familiar with, while leveraging Episerver’s cloud servers to do the heavy lifting.
While this does shift some of our server load to Episerver’s servers, the standard implementation still relies on my servers to load model data, and build view models. Generally this isn’t slow, but processing complex view models can hurt performance, and impact server load, especially as result sets increase in size, and complexity.
Projections allow me to specify which fields Episerver Find should retrieve data for, for a given query. I try to use them wherever it makes sense, since it allows us to display results with very little server load. There are a few downsides/gotchas that I’ve had to work through though.