Our users are complaining that the full text search service, as it is implemented by default in the Relate 2 templates, doesn't return good search results. I think users expect a more "google like" experience where you don't have to use query operators like * and " to instruct the search engine. The search engine should itself have a certain tolerance to difference in words etc.
I'm now implementing the following logic, but I'm very interested to hear if there is a better way to do this:
If query text contains control chars (*, +, -, ") go ahead and use FieldQuery (like default Relate)Else: Split query on common word delimiters (space, ., !, ? etc) and create one FuzzyQuery for each, and also add wildcard (*) to end of each word.
I keep both sets of chars as well as settings for the use of wildcard and the similarity factor for the FuzzyQuery in a config file so that they can be tweaked.
So - is there a better way to do this? How is the search here on EPiServer World set up? It seems to work a little "better" than the default in the relate temples.
I think they use SiteSeeker here on World.
Oh... That would explain why I think it works better than the default Relate search :)
Any other ideas than mine on how to tweak the FTS?