Drupal, Articoli simili

The spam filter installed on this site is currently unavailable. Per site policy, we are unable to accept new submissions until that problem is resolved. Please try resubmitting the form in a couple of minutes.
Drupal, Articoli simili

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.

Invia nuovo commento
Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.