The default search in Shopify doesn't seem to have a lot of depth to it, but if you find the right documentation, you can put together a few options for your power-users, to refine their searches in various ways.
Mannequin's search results template allows your customers to customise their search results using a number of different techniques.
Search by product status
This argument allows you to return all products, or just those which are in stock.
Search by location
Shopify recommends using the type attribute on a hidden input field, to allow you to repurpose the search on your product landing page, and to exclude articles and pages from the search results. You could do the same on your blogs, to show only results from that kind of content.
But what if we put this power into your user's hands? The three types of information which can be custom-searched are:
Search by prefix
By default, Shopify searches are strict - a search for cat will not return a page called cats. The final advanced search filter allows your users to toggle the search to be less strict. Note that your customer's search string will be considered a prefix. This means that a search for board will not match surfboard even if loose search is turned on.
Using advanced search
Most of your customers probably won't use these features, so by default, the advance search filters are hidden inside a details element.
If the search fails to return any results, the search results page will apologise and serve all of your store's collections instead.