Apache Solr - Architettura
In questo capitolo, discuteremo l'architettura di Apache Solr. La figura seguente mostra un diagramma a blocchi dell'architettura di Apache Solr.
Solr Architecture ─ Building Blocks
Di seguito sono riportati i principali elementi costitutivi (componenti) di Apache Solr:
Request Handler- Le richieste che inviamo ad Apache Solr vengono elaborate da questi gestori di richieste. Le richieste potrebbero essere richieste di query o richieste di aggiornamento dell'indice. In base alle nostre esigenze, dobbiamo selezionare il gestore delle richieste. Per passare una richiesta a Solr, generalmente mapperemo il gestore su un determinato endpoint URI e la richiesta specificata verrà servita da esso.
Search Component- Un componente di ricerca è un tipo (caratteristica) di ricerca fornito in Apache Solr. Potrebbe essere controllo ortografico, query, sfaccettatura, evidenziazione dei risultati, ecc. Questi componenti di ricerca sono registrati comesearch handlers. È possibile registrare più componenti in un gestore di ricerca.
Query Parser- Il parser di query di Apache Solr analizza le query che passiamo a Solr e verifica le query per errori sintattici. Dopo aver analizzato le query, le traduce in un formato che Lucene comprende.
Response Writer- Un writer di risposte in Apache Solr è il componente che genera l'output formattato per le query dell'utente. Solr supporta formati di risposta come XML, JSON, CSV, ecc. Abbiamo diversi autori di risposte per ogni tipo di risposta.
Analyzer/tokenizer- Lucene riconosce i dati sotto forma di gettoni. Apache Solr analizza il contenuto, lo divide in token e passa questi token a Lucene. Un analizzatore in Apache Solr esamina il testo dei campi e genera un flusso di token. Un tokenizer suddivide il flusso di token preparato dall'analizzatore in token.
Update Request Processor - Ogni volta che inviamo una richiesta di aggiornamento ad Apache Solr, la richiesta viene eseguita attraverso una serie di plugin (firma, registrazione, indicizzazione), noti collettivamente come update request processor. Questo processore è responsabile di modifiche come l'eliminazione di un campo, l'aggiunta di un campo, ecc.