Ricerca nel sito web

Come installare Apache Solr su Debian 12


Questo tutorial esiste per queste versioni del sistema operativo

  • Debian 12 (Topo di biblioteca)
  • Debian 11 (Bullseye)

In questa pagina

  1. Prerequisiti
  2. Installazione di Java OpenJDK
  3. Download e installazione di Apache Solr
  4. Configurazione di Apache Solr

    1. Configurazione del sistema Debian
    2. Configurazione di Apache Solr
  5. Protezione di Apache Solr con il plugin BasicAuth
  6. Creazione del primo indice Apache Solr
  7. Conclusione

Apache Solr è una piattaforma di ricerca open source basata su Apache Lucene, progettata per creare potenti funzionalità di ricerca e indicizzazione delle applicazioni. Fornisce ricerca avanzata dell'intero testo, ricerca sfaccettata, indicizzazione in tempo reale e ricerca distribuita, rendendolo una scelta popolare per la creazione di motori di ricerca e sistemi di recupero dati. Solr è altamente scalabile e ottimizzato per grandi volumi di dati, spesso utilizzato in ambienti aziendali per attività quali ricerca di siti Web, e-commerce e analisi di big data. La sua API simile a REST consente una facile integrazione con altri sistemi e supporta funzionalità come l'evidenziazione di suggerimenti di query e la ricerca geospaziale. La flessibilità, le prestazioni e il supporto della comunità di Solr lo hanno reso una soluzione leader per le organizzazioni che necessitano di robuste funzionalità di ricerca.

In questa guida ti mostreremo istruzioni passo passo su come installare Apache Solr sul server Debian 12. Installerai Apache Solr con Java OpenJDK 17, lo proteggerai tramite il plugin BasicAuth e poi imparerai come creare un indice Solr utilizzando la riga di comando.

Prerequisiti

Prima di procedere, spunta quanto segue:

  • Un server Debian 12 con almeno 4 GB di memoria.
  • Un utente non root con privilegi di amministratore sudo.

Installazione di Java OpenJDK

Apache Solr è una piattaforma di ricerca aziendale basata su Apache Lucene e in esecuzione su Java JRE (Java Runtime Environment). Al momento, Solr richiede almeno Java JRE (Java Runtime Environment) versione 11 e utilizzerai OpenJDK 17 che può essere installato dal repository Debian.

Prima di iniziare, esegui il comando seguente per aggiornare e aggiornare l'indice del tuo pacchetto Debian.

sudo apt update

Ora esegui il seguente comando per installare Java OpenJDK sulla tua macchina Debian. In Debian 12, il pacchetto default-jdk fa riferimento a Java OpenJDK 17, che Apache Solr può utilizzare.

sudo apt install default-jdk

Digitare y per procedere con l'installazione.

Al termine dell'installazione, verificare la versione Java eseguendo il comando seguente.

java --version

Il seguente output conferma che Java OpenJDK 17 è installato.

Download e installazione di Apache Solr

Dopo aver installato Java OpenJDK, scaricherai e installerai Apache Solr sul tuo computer tramite lo script di installazione. Al momento, l'ultima versione di Apache Solr è la versione 9.4. Visita la pagina di download ufficiale di Apache Solr per ottenere informazioni sulla versione più recente.

Prima di scaricare Apache Solr, installa alcune dipendenze eseguendo il seguente comando.

sudo apt install curl lsof bc

Ora esegui il comando curl qui sotto per scaricare il pacchetto binario di Apache Solr. Al momento in cui scrivo, l'ultima versione di Apache Solr è v9.4.0. Una volta scaricato, il pacchetto Apache Solr sarà disponibile su solr-9.4.0.tgz.

curl -qO https://downloads.apache.org/solr/solr/9.4.0/solr-9.4.0.tgz

Successivamente, esegui il comando seguente per estrarre lo script di installazione di Apache Solr dal file solr-9.4.0.tgz. Lo script di installazione install_solr_service.sh verrà estratto dalla directory di lavoro corrente.

tar xzf solr-9.4.0.tgz solr-9.4.0/bin/install_solr_service.sh --strip-components=2

Successivamente, esegui il comando seguente per installare Apache Solr solr-9.4.0.tgz tramite lo script di installazione install_solr_service.sh.

sudo bash ./install_solr_service.sh solr-9.4.0.tgz

Durante il processo, vedrai quanto segue:

Dall'immagine, dovresti vedere lo stato dettagliato della tua installazione di Apache Solr:

  • La directory di installazione predefinita di Apache Solr è /opt/solr con la directory dei dati /var/solr.
  • Viene creato automaticamente il nuovo utente di sistema solr, che verrà utilizzato per eseguire il processo Apache Solr.
  • Viene inoltre creato un nuovo script di servizio chiamato solr.service, che può essere gestito tramite il comando systemctl e service .

Ora verifica il servizio solr utilizzando il seguente comando.

sudo service solr status

Verrà visualizzato il seguente output, che conferma che il servizio solr è in esecuzione in background e avviato tramite script di servizio.

È inoltre possibile utilizzare il comando seguente per riavviare o arrestare il servizio Solr.

sudo service solr restart
sudo service solr stop

Configurazione di Apache Solr

Ora che hai installato Apache Solr. Nel passaggio successivo, eseguirai le seguenti operazioni:

  • Configurazione del sistema Debian: modificherai la tua macchina Debian aumentando shmmax, nr_hugepages e i limiti di sistema sia per i processi massimi che per i file aperti.
  • Configurazione di Solr: aumenterai la memoria heap massima per Solr e configurerai un indirizzo IP locale specifico come host Apache Solr.

Cominciamo.

Configurazione del sistema Debian

Per ottimizzare Apache Solr, devi aumentare shmmax, nr_hugepages, max processi e max file aperti sul tuo Macchina Debian.

Esegui il seguente comando per aumentare i parametri del kernel shmmax e nr_hugepages sulla tua macchina Debian.

sudo echo 4294967295 > /proc/sys/kernel/shmmax
sudo echo 1536 > /proc/sys/vm/nr_hugepages

Quindi, apri il file /etc/security/limits.conf utilizzando il seguente comando dell'editor nano.

sudo nano /etc/security/limits.conf

Aggiungi la seguente configurazione alla fine della riga. In questo modo verrà impostato il processo massimo e il numero massimo di file aperti per l'utente Solr a 65000.

solr   soft   nofile   65000
solr   hard   nofile   65000
solr   soft   nproc    65000
solr   hard   nproc    65000

Salvare il file e uscire dall'editor una volta terminato.

Infine, verifica gli ulimits (processo massimo e file aperti massimi) per l'utente solr eseguendo il comando seguente.

sudo -H -u solr bash -c "ulimit -aH"

In caso di successo, ora dovresti avere ulimit max process e max open files per l'utente solr configurato su 65000.

Configurazione di Apache Solr

Dopo aver apportato modifiche alla tua macchina Debian, ora modificherai la configurazione di Apache Solr, imposterai la memoria heap massima su 4 GB ed eseguirai Solr su un indirizzo IP locale specifico 192.168.10.15 forte>.

Apri la configurazione predefinita di Apache Solr /etc/default/solr.in.sh utilizzando il comando dell'editor nano riportato di seguito.

sudo nano /etc/default/solr.in.sh

Modifica l'opzione SOLR_HEAP predefinita con la memoria massima consentita. In questo esempio, consentirai ad Apache Solr di eseguire e utilizzare una memoria massima di 4 GB.

SOLR_HEAP="4g"

Quindi, decommenta le opzioni SOLR_HOST e SOLR_JETTY_HOST e inserisci l'indirizzo IP del tuo server. In questo esempio, eseguirai Apache Solr all'interno dell'indirizzo IP locale 192.168.10.15.

SOLR_HOST="192.168.10.15"
SOLR_JETTY_HOST="192.168.10.15"

Salva e chiudi il file quando hai finito.

Successivamente, esegui il comando seguente per riavviare il servizio solr e applicare le modifiche apportate.

sudo service solr restart

Dopo aver eseguito il comando, Apache Solr sarà in esecuzione sull'indirizzo IP del tuo server 192.168.10.15 e la memoria heap massima sarà 4 GB.

Avvia il tuo browser web e visita l'indirizzo IP del server seguito dalla porta 8983, ad esempio http://192.168.10.15:8983/. Se tutto è stato eseguito correttamente, dovresti visualizzare la pagina del dashboard di Apache Solr come la seguente.

Da lì, puoi vedere la directory di installazione di Apache Solr /opt/solr in esecuzione con Java OpenJDK 17.

Protezione di Apache Solr con il plugin BasicAuth

In questa sezione proteggerai Apache Solr aggiungendo l'autenticazione tramite il plugin BasicAuth e creando un nuovo utente Solr. Per raggiungere questo obiettivo, è necessario creare una configurazione specifica e quindi definire il modulo di autenticazione e il modulo di autorizzazione per gli utenti Solr.

Crea un nuovo file /var/solr/data/security.json utilizzando il seguente comando dell'editor nano. In questo esempio, la directory dei dati predefinita per Apache Solr è /var/solr/data/.

sudo nano /var/solr/data/security.json

Inserire la seguente configurazione nel file.

{
  "authentication":{
    "blockUnknown": true,
    "class":"solr.BasicAuthPlugin",
    "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},
    "realm":"My Solr users",
    "forwardCredentials": false
  },
  "authorization":{
    "class":"solr.RuleBasedAuthorizationPlugin",
    "permissions":[{"name":"all", "role":"admin"}],
    "user-role":{"solr":"admin"}
  }
}

Salva e chiudi il file quando hai finito.

In questo modo, proteggerai Apache Solr tramite quanto segue:

  • BasicAuthPlugin per l'autenticazione dell'utente e creazione di un nuovo utente solr con password solrRocks.
  • RuleBasedAuthorizationPlugin per l'autorizzazione e la configurazione dell'utente solr come amministratore che può accedere a qualsiasi indice all'interno dell'installazione di Apache Solr.

Successivamente, esegui il comando seguente per riavviare il servizio solr e applicare le modifiche apportate.

sudo service solr restart

Ora torna al tuo browser web e ricarica la scheda Apache Solr. Se tutto ha esito positivo, dovresti essere reindirizzato alla pagina di accesso di Solr come la seguente.

Accedi con l'utente solr e la password SolrRocks.

Se il tentativo di accesso ha esito positivo, dovresti vedere la dashboard di Apache Solr sullo schermo.

Creazione del primo indice Apache Solr

A questo punto, hai terminato l'installazione di Apache Solr, ora puoi creare il tuo primo indice Solr tramite la riga di comando. Ma prima, devi assicurarti che sia configurata l'autenticazione predefinita per Solr.

Apri il file di configurazione Solr /etc/default/solr.in.sh utilizzando il seguente comando dell'editor nano.

sudo nano /etc/default/solr.in.sh

Decommenta le seguenti righe per impostare l'autenticazione Solr predefinita tramite l'autenticazione di base e inserisci l'utente solr e la password SolrRocks che hai creato.

SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"

Salva il file e esci dall'editor quando hai finito.

Ora esegui il comando systemctl riportato di seguito per riavviare il servizio solr e applicare le modifiche.

sudo service solr restart

Successivamente, esegui il comando seguente per creare il tuo primo indice Solr test_core.

su - solr -c "/opt/solr/bin/solr create -c test_core -n TestCore"

Una volta creato l'indice, vedrai l'output previsto "Created new core 'test_core'" come questo:

Infine, torna alla dashboard di Apache Solr. Quindi, seleziona test_core nella sezione del menu a discesa Selettore core.

Al termine, dovresti visualizzare informazioni dettagliate per l'indice test_core come le seguenti:

Conclusione

Per concludere, hai completato passo dopo passo l'installazione di Apache Solr sul server Debian 12. Hai installato Apache Solr con Java OpenJDK 17 e hai protetto l'installazione di Apache Solr aggiungendo l'autenticazione tramite il plug-in BasicAuth. Inoltre, hai anche imparato come creare un indice Solr tramite la riga di comando. D'ora in poi, puoi sfruttare la tua installazione Solr creando un cluster Solr.

Articoli correlati: