Un funzionalità molto interessante di Drupal è sicuramente offerta dal modulo Similar Entries. Questo modulo per Drupal permette di visualizzare un elenco di nodi simili all'articolo correntemente visualizzato. Lo potete vedere in azione qui a fianco.
Questo può essere un modo molto semplice da installare ed è efficace per far aumentare il numero di pagine viste nel sito da parte dei visitatori. Spesso infatti i navigatori leggono una o al massimo due pagine e poi cambiano sito a meno che non trovino altri contenuti interessanti. Avere a disposizione un elenco di articoli simili a quello in cui ci si trova, ad esempio con approfondimenti o notizie correlate, fa aumentare l'interesse e quindi far rimanere le persone nel sito più a lungo con tutti gli ovvi vantaggi.
Le ricerche full-text in MySQL
Il funzionamento del modulo Similar Entries è basato su una ricerca full-text che viene effettuata cercando nel database di Drupal tutti i nodi il cui titolo e contenuto hanno la maggior corrispondenza con il nodo attivo.
In un database MySQL una semplice ricerca full-text si effettua usando la seguente sintassi:
SELECT * FROM tabella WHERE MATCH (titolo,contenuto) AGAINST ('stringa');
Nel caso specifico di Drupal, lo scopo è quello di identificare i nodi con il più alto tasso di somiglianza, pertanto la sintassi è leggermente differente:
SELECT nid, MATCH( title, body) AS punteggio AGAINST ('stringa') FROM ('node_revisions') ORDER BY punteggio DESC;
In pratica si cerca la stringa nei campi specificati su MATCH()
. Ad ogni nodo trovato l'interrogazione MySQL assegna un punteggio, più grande è il punteggio e maggiore sarà il grado di similitudine tra il contenuto del nodo e la stringa.
Questo sistema funziona molto bene in quanto estrae con esattezza i contenuti simili però ha qualche problemino a livello prestazionale. In siti con migliaia di articoli le query full-text su MySQL non sono molto veloci e se il numero di utenti è elevato questo potrebbe portare a dei rallentamenti significativi del sito web. Pertanto è consigliabile adottare un sistema di caching per ridurre il carico di lavoro nel database.
Ultimi commenti
8 years 2 settimane fa
8 years 4 settimane fa
8 years 4 settimane fa
8 years 17 settimane fa
8 years 17 settimane fa
8 years 17 settimane fa
8 years 18 settimane fa
8 years 18 settimane fa
8 years 19 settimane fa
8 years 19 settimane fa