![Drupal, Articoli simili Drupal, Articoli simili](https://www.finex.org/files/imagecache/blog-image/drupal-articoli-simili.jpg)
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
7 years 43 settimane fa
7 years 44 settimane fa
7 years 45 settimane fa
8 years 6 settimane fa
8 years 6 settimane fa
8 years 6 settimane fa
8 years 6 settimane fa
8 years 6 settimane fa
8 years 7 settimane fa
8 years 7 settimane fa