How to implement a semantic search?
The following may or may not meet your needs exactly, but they're ideas.  Since I am now aware of semantic search modules currently available, these would be my workarounds.

The default drupal search does not really provide you with a lot of configuration options to determine which of your nodes' fields/tags can be weighed more heavily when determining search result relevance, I would enable and use the Apache Solr Search Integration module to get at more accurate search results.

With this module, you can get several benefits:


It lets you configure different weights, in terms of search result relevance, for the title, body, text in bold, text in comments, as well as terms in all your vocabularies.  This way, you can weigh very heavily the terms from a certain vocabulary, while omitting text from comments and weighing very lightly text that is in terms from another vocabulary (for example) -- adjust weights to your needs.  What I'm suggesting here is that you can use tagging as a form of search metadata with this module...  (Author name, etc are also fields that can be weighed with this interface)





You can use facets with apachesolr search, which can allow your customers to actually narrow down and interact with search results themselves!  It also provides a 'sort by' block, which users can use to sort results by relevancy (the default), or date, author or type if they prefer.  These aren't exactly what you asked for, but are a way to interactively let users tailor results...  Screenshot below is directly from apachesolr's module demo site.




To use apachesolr search, however, you have to have to install and configure a solr server for drupal to use: http://drupal.org/node/1053074