Capisco cosa intendete ma la questione credo sia mooolto più complicata di così.
Premetto che tutti i principali "motori" per la ricerca si basano comunque sui fattori che avete detto. Ad esempio, la presenza di tutte le parole cercate, il match perfetto senza correzioni, la presenza delle parole nello stesso ordine della query di ricerca. Quindi questa è una cosa che verrebbe migliorata in automatico con un motore alternativo.
Dopodiché però secondo me bisogna distinguere se si sta facendo una ricerca di discussioni o di messaggi, che sono cose molto diverse e penso ci siano entrambe le esigenze.
Nel primo caso (discussioni) il titolo probabilmente deve avere la priorità maggiore, seguito immagino dalla lista dei tag. Considerare il contenuto di tutti i post è piuttosto complicato, l'implementazione attuale ci prova e i risultati non sono buoni, banalmente perché poi bisogna puntare l'utente a un singolo messaggio anche se i post rilevanti potrebbero essere tanti. Poi, se c'è una discussione con un off topic di qualche messaggio rischia di acquisire rilevanza come risultato anche se probabilmente non ce l'ha. In una ricerca per discussioni non credo di voler vedere discussioni in cui al post 700 su 4000 si parla di quello che ho cercato, perché quella mi sembra più una ricerca di messaggi. Questo modo di funzionare potrebbe andare bene se si sta cercando messaggi email, dove un thread email non arriva "mai" ad avere centinaia di messaggi, ma non su un forum.
Nei test che sto facendo ho provato a tenere in considerazione il testo del primo post, con priorità bassa, e probabilmente a qualcosa serve, ma ci sono discussioni che sono veramente complicate da matchare. Penso alla discussione Rallentamento alla sera (Torino) dove né nel titolo né nel primo post sono presenti le parole "Open Fiber" e "saturazione", che sono invece le prime cose che cercherei per trovare quella discussione. (Questo caso specifico è risolvibile includendo tra i campi indicizzati i tag e configurando "rallentamento" come sinonimo di "saturazione", ma chissà quanti altri ce ne sono.)
C'è poi una questione di ordinamento dei risultati per rilevanza, che di solito non può essere fatto basandosi solo sulla presenza delle parole ricercate. Ad esempio se io cerco "rete unica" nel database ci sono centinaia di discussioni che parlano di rete unica, tra cui una che ha un titolo che è esattamente "Rete unica", ma la discussione che tutti cercano non è quella. Quindi bisogna introdurre ulteriori parametri che possono essere il numero di mi piace, il numero di risposte, il numero di persone che hanno letto la discussione. E resta comunque molto difficile beccare al primo colpo quello che si cerca tra 28mila discussioni, ci vuole la magia.
C'è poi, separatamente secondo me, il caso in cui l'obiettivo è trovare qualcosa in mezzo a una discussione, qualcosa che non è immediatamente riconducibile al titolo o all'inizio della discussione. È quindi una ricerca di messaggi, che può essere sia globale che per discussione (azionabile dall'interno della discussione, presumo). Nel primo caso c'è un grande problema e cioè che i post nel database sono più di 600mila. Anche in questo caso si possono introdurre parametri di rilevanza (es. numero di mi piace, numero di visualizzazioni del post, dare priorità ai messaggi scritti da esperti o rappresentanti), ma restano comunque 600mila post.
Per questo chiedevo di fare esempi specifici perché secondo me è da lì che si riesce a capire quali sono i casi d'uso e come devono essere risolti, anche a livello di interfaccia grafica.
/sproloquio