search using multiple taxonomies and keyword

I would recommend you to use a hook for pre_get_posts action. This action is fired before appropriate posts are fetched from db. In this hook you can add extra parameters to your query and have influence on returned results. So the basic implementation of your hook could be like this:

add_action( 'pre_get_posts', 'wpse8170_pre_get_posts' );
function wpse8170_pre_get_posts( $query ) {
    if ( is_search() ) { // check if it is search page
        $query->set( 'arg', 'value' ); // add additional arguments to the query
    }
}

Pay attention that arg and value parameters are generic and was mentioned as example. You have to use correct arg and value for your query. All list of available arguments for the query you can read in codex.