Benvenuto in phpBB.it Lo Staff ti augura Buon Lavoro!
Login
     
Faq e Guide Faq e Guide di Amministrazione Motore di ricerca Fulltext Native e Fulltex
Motore di ricerca Fulltext Native e Fulltex PDF Stampa
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.

phpMyAdmin

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.

 
phpBB.it Italian Communities