Autore: Nicholas Note: Questo articolo spiega la differenza tra Fulltext Native e Fulltext MySQL. phpBB3 mette a disposizione due diversi sistemi di indicizzazione e ricerca dei contenuti dei vari messaggi nel forum, noti come Fulltext Native (già presente nelle versioni precedenti) e Fulltext MySQL (inserito in phpBB3 e specifico per MySQL). Il primo è implementato all'interno del codice PHP phpBB, è indipendente dal DBMS utilizzato (DataBase Management System, quali MySQL, MSSQL, ecc.), e fa uso di due tabelle nel database (phpbb_search_wordlist e phpbb_search_wordmatch) che memorizzano rispettivamente la lista di tutte le parole significative presenti nei vari messaggi, e le associazioni tra ciascuna parola e i post che la contengono. Il secondo, come suggerisce il nome, funziona solo con DBMS MySQL, creando degli indici fulltext all'interno della tabella phpbb_posts. Tali indici sono gestiti e aggiornati automaticamente dal DBMS (anziché da phpBB, come nel caso Native). Il vantaggio del Native, oltre al funzionamento con DBMS diversi da MySQL, sta nella maggior configurabilità: dal Pannello di Amministrazione si può scegliere quali forum indicizzare e quali escludere, quali parole considerare troppo corte, troppo lunghe o troppo comuni per essere considerate, ecc. Lo svantaggio sta nella minore efficienza complessiva, con conseguente maggior carico sul server (sia in fase di inserimento/modifica dei messaggi, per l'aggiornamento degli indici, sia in fase di ricerca). Inoltre, la tabella phpbb_search_wordmatch può arrivare a contenere molti record (si pensi a una board media con 50K post e 50 parole "significative" per messaggio, fanno già 2,5M record), e certi server condivisi lamentano questa situazione. Il vantaggio del MySQL sta in un minor uso di spazio all'interno del database e soprattutto una maggior efficienza (essendo appunto gestito direttamente dal DBMS, quindi a livello più basso). Questo va a spese di una minor configurabilità (il funzionamento dipende dalla configurazione di MySQL) e modificabilità (in quanto non si può intervenire con MOD o modifiche al codice sull'implementazione di MySQL). In generale, e salvo specifiche esigenze o problemi, se si utilizza MySQL è preferibile impostare Fulltext MySQL come sistema di indicizzazione, creare gli indici relativi ed eliminare quelli per Fulltext Native (il tutto è fattibile dal Pannello di Amministrazione). Nota bene Le considerazioni su esposte valutano l'efficienza, non l'efficacia dei due sistemi: non sono al momento noti studi su quale dei due metodi di ricerca risulti migliore nel rispondere alle necessità degli utenti del forum. Screenshot da phpMyAdmin relativo a una tabella phpbb_posts con indici fulltext (modalità Fulltext MySQL); si noti a destra l'elevata dimensione degli indici rispetto ai dati; tuttavia, come si vede a sinistra, le tabelle phpbb_search sono vuote.
|