Motore di ricerca (Solr)

Il CMS usa Apache Solr come motore di ricerca full-text tramite l'estensione ezfind. Ogni istanza della piattaforma ha il proprio core Solr dedicato, che contiene una copia indicizzata di tutti i contenuti pubblicati.

Come funziona l'indicizzazione

Quando pubblichi o modifichi un contenuto, il CMS lo invia automaticamente a Solr per l'indicizzazione. Il componente ocsearchtools si occupa di:

  • tradurre le query degli utenti nel formato Solr;

  • gestire la navigazione a faccette (filtri per tipologia, categoria, data...);

  • applicare i filtri per classe di contenuto nelle ricerche avanzate.

Tutta la ricerca sul sito e i blocchi filtrabili si appoggiano a Solr: non vengono eseguite query dirette al database PostgreSQL per queste funzioni. Per dataset personalizzati è disponibile il componente occustomfind.

Quando serve un reindice manuale

L'indicizzazione automatica copre il flusso normale di pubblicazione. Esistono però situazioni in cui l'indice Solr può disallinearsi dal database e richiede un reindice manuale:

  • Primo avvio: dopo l'installazione, l'indice è vuoto e va popolato;

  • Modifica del modello dei contenuti: se aggiungi un nuovo attributo a una classe di contenuto, i contenuti già esistenti di quella classe non vengono re-indicizzati automaticamente; è necessario un reindice esplicito per quella classe;

  • Disallineamento dopo migrazione o ripristino: a seguito di migrazioni di database, ripristini da backup o importazioni massive, l'indice Solr può non corrispondere più al database.

Il reindice è un'operazione onerosa in termini di risorse. Puoi eseguirlo su una singola classe di contenuto oppure su tutti i contenuti: preferisci il reindice parziale quando conosci esattamente quali classi sono coinvolte.

Last updated

Was this helpful?