1 - non puoi usare search come nome di una funzione perche' e' una "parola riservata" in quanto identifica una porzione dell'URL della pagina;

2 - L'evento che dovrebbe provocare l'invio del form (il click sul pulsante submit) nel tuo caso ne scatena diversi... dapprima richiama la funzione di cui sopra (onclick nel pulsante) quindi dovrebbe scatenare l'azione insita nel pulsante stesso (invio del form) ma a questo punto viene richiamata nuovamente la funzione (onsubmit nel form) ed infine il form verra' inviato... se nel frattempo non ci fossero ulteriori istruzioni nello script che, se fossero sintaticamente corrette, dovrebbero procedera all'invio del form... invece ricaricano la pagina corrente o aprono una finestra nella quale verra' ospitata la pagina chiamata, ma senza averle passato i parametri dato che il form non e' stato inviato.

Qui mi limito a proporti una soluzione minimalista (delle tante possibili) invitandoti ad approfondire lo studio del linguaggio che, a mio avviso, e' sempre utilissimo conoscere.

codice:
<form name="ricerca" method="get" target="_blank" onsubmit="return controlla()">
<label>Ricerca nel sito</label>
<input type="text" name="stringa" value="" />
<input type="submit" value="Cerca" />
</form>

function controlla(){
  if (document.ricerca.stringa.value==""){
    alert("Inserisci almeno un termine");
    return false;
  }
  return true;
}
ciao