Search logic is more complicated than it looks. It looks into below data for any search keyword.
a)Name of the product
To insure proper search result, we follow below thumb rules
a) Search would first look for complete sentence in the search. If any product matches with it, those are listed.
b) Then we look for individual words in the search.
c) Search looks for complete word match but not incomplete word.
For example, if product name is "almonds", and if you search for "almond" then this product cannot come in the search.
Now let me explain the issue you would face if we allow such search, if you search for "sea" and there are products like "F1 season", "search of horizon", "Sea dragons".
Now ideal result should be "Sea dragons" but it would list all three products and also other products which contains 3 letter "sea" causing confusion and search becoming meaningless.
To overcome above issue, it is better that we teach our search engine with keywords.
For example, you can set Meta keywords as "almonds","almond" etc for search to list product almond making your search better and usable.