Implementing an information retrieval system is a bit like tuning into a radio station - you have to ignore the noise and home in on the signal.
In our case a My Trails search is different to an All Trails search. The My Trails searcher is thinking, "what did I search on again? what keywords did I use?" The search must be very 'loose' so it matches easily. We're trying to help the user recall their previous trails quickly and easily.
On the other hand the All Trails search needs to be more precise as there are thousands of trails that could potentially match. The All Trails searcher is thinking, "I wonder if someone else has searched on this before? what would they have searched on?"
To help the accuracy of both types of searches we ignore a limited set of multilingual stopwords (e.g., and, the, a etc.). And if you want to be really accurate you can do "exact phrase searching". So if you're looking for something precisely then "put it in quotes".
We're pretty happy with the algorithm at the moment but this is something we will constantly tweak to tune in to the best signal! ;-)