By default Magento offers three search types, configurable via: 'Admin > Configuration > Catalog > Catalog Search > Search Type', each are outlined below.
Magento also uses search synonyms, these can be used to create and modify search terms that are commonly used, this can help to replace plurals, misspellings or uncommon words with something more suited to the products stocked. They can also be used to improve or weigh searches to some extent, and when used in combination with searchable attributes can provide a powerful tool for refining searches. These can be added via 'Admin > Catalog > Search Terms' .
Is the default basic search type for Magento, this method takes each of the words used in the search, separated by a space, and then uses OR between them to produce the results.
Example, searching for 'Green Pens' would produce search criteria such as; find items where attributes used in search are LIKE 'Green' OR LIKE 'Pens'. This can obviously produce a large amount results pulling in products such as green mugs, green diaries, green trousers etc, along with all other available colour pens.
For those familiar with MySQL, the query uses something along the lines of:
WHERE `attribute` LIKE 'some' OR `attribute` LIKE 'search' OR `attribute` LIKE 'terms'
Fulltext search is more focused, a separate table is used for the search terms, built from product attributes that are available for search ('Use in Quick Search' found at Catalog > Attributes > Manage Attributes), all results are then sorted by a relevance score.
While the search becomes much more relevant to the terms used, some items may not appear in the results due to the very specific nature of this type of search, although when tuned can work extremely well.
Exact words also need to be matched in this type of search, for example searching for 'paper' would not be matched against 'papering' or 'papered'.
There is a 4 character minimum for the search term for this type of search, meaning 'red' would not produced a match, while 'pens' would.
For those familiar with MySQL, fulltext is based upon a query using MATCH (...) .. AGAINST (...)
An Example of the data the query would search against:
PP00117|Natural/Black|Natural/Black|Natural|Enabled|Enabled|Enabled|Birchley B5 Recycled Notebook|Birchley B5 Recycled Notebook - Natural/Black|Birchley B5 Recycled Notebook - Natural|Environmentally friendly spiral bound B5 notebook made from 95% Recycled Cardboard c/w elasticated closure and pen holder & 100 pages of lined 100% recycled paper.|Environmentally friendly spiral bound B5 notebook made from 95% Recycled Cardboard c/w elasticated closure and pen holder & 100 pages of lined 100% recycled paper.|Environmentally friendly spiral bound B5 notebook made from 95% Recycled Cardboard c/w elasticated closure and pen holder & 100 pages of lined 100% recycled paper.|Birchley B5 Recycled Notebook|Birchley B5 Recycled Notebook - Natural/Black|Birchley B5 Recycled Notebook - Natural|3.04|3.04|3.04|Black|Natural|1
Note: MySQL also places to following restrictions on fulltext searches, certain words are used as stopwords and can affect the results produced, these are listed here.
Combine (FULLTEXT + LIKE) as the name suggests, uses both methods of search listed above and then applies a sort by relevance.