Drupal Search API + Solr: ricerca avanzata

Ricerca avanzata in Drupal

La ricerca core di Drupal si basa su MySQL fulltext, sufficiente per siti piccoli ma limitata in scala e rilevanza. Per ricerca enterprise si usa Search API come abstraction layer e Apache Solr (o Elasticsearch) come backend di indicizzazione.

Installazione

composer require drupal/search_api drupal/search_api_solr
drush en search_api search_api_solr

Per Solr serve un server installato (Solr 8.11+ o 9.x), tipicamente in container Docker o servizio cloud (es. SearchStax, Acquia Search).

Server e index

Search API distingue:

  • Server: backend (Database, Solr, Elasticsearch)
  • Index: configurazione di cosa indicizzare (entity type, bundle, fields)

Da /admin/config/search/search-api si crea il server Solr (URL, core name, schema version) e poi un'index su Content con i campi (title, body, tags, created).

Field configuration

Per ogni campo si configura il tipo (Fulltext, String, Integer, Date) e il boost (peso nella rilevanza). Title con boost 5.0 contribuisce più del body 1.0 al ranking.

Processors

Pipeline di trasformazione del contenuto prima dell'indicizzazione:

  • HTML filter (strip HTML tags)
  • Tokenizer (split parole)
  • Lowercase
  • Stemmer (radici linguistiche)
  • Stopwords (rimuove parole comuni)
  • Ignore characters (punteggiatura)

Processor lingua-specifici (italiano: stemmer + stopwords ita) migliorano la rilevanza.

Indicizzazione

Prima indicizzazione full:

drush search-api:index

Successivamente Drupal indicizza in coda automaticamente alla creazione/modifica di contenuti. Cron eseguito frequentemente mantiene l'index aggiornato.

Search view

Si crea una View di tipo "Search index" che query Solr. Si configurano filtri esposti (fulltext search, faccette su tags/category), sort (Relevance, Date), pagination.

Faccette

Il modulo facets aggiunge faccette navigabili (checkbox di categorie con count). Ogni faccetta e' un blocco posizionabile in sidebar. UI moderna con tag list, slider per range numerici.

Did you mean / suggester

Solr offre query suggestion (autocomplete) e "did you mean" (correzione tipi). Configurabili nei processor avanzati e via search_api_autocomplete.

Highlight

Il modulo search_api_highlight evidenzia i termini cercati nei risultati con tag <mark> o personalizzato.

Hai bisogno di aiuto?

Se vuoi un sito Drupal performante dal team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?