Cos'è Apache Solr? Apache Solr è una piattaforma di ricerca open source di classe enterprise scritta in Java che consente di creare motori di ricerca personalizzati che indicizzano database, file e siti Web. Ha il supporto back-end per Apache Lucene. Può ad es. essere utilizzato per eseguire ricerche in più siti Web e può mostrare consigli per il contenuto cercato. Solr utilizza una query basata su XML (Extensible Markup Language) e un linguaggio dei risultati. Sono disponibili API (Applications program interfaces) per Python, Ruby e JSON (Javascript Object Notation).
Alcune altre funzionalità fornite da Solr sono:
- Ricerca di testo completo.
- Generazione ed evidenziazione degli snippet.
- Ordinazione/classifica documenti personalizzati.
- Suggerimenti di incantesimi.
Questo tutorial ti mostrerà come installare l'ultima versione di Solr su Ubuntu 16.04 LTS. Molto probabilmente i passaggi funzioneranno anche con le versioni successive di Ubuntu.
Aggiorna il tuo sistema
Usa un utente sudo non root per accedere al tuo server Ubuntu. Attraverso questo utente, dovrai eseguire tutti i passaggi e utilizzare Solr in un secondo momento.
Per aggiornare il tuo sistema, esegui il comando seguente per aggiornare il tuo sistema con le patch e gli aggiornamenti più recenti.
sudo apt-get update && apt-get upgrade -y
Configurazione di Java Runtime Environment
Solr è un'applicazione Java, quindi è necessario installare prima l'ambiente di runtime Java per poter configurare Solr.
Dobbiamo installare le proprietà del software Python per installare l'ultima versione di Java 8. Esegui il comando seguente per installare il software.
[email protected]:~# sudo apt-get install python-software-properties
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-apt
python-minimal python-pycurl python2.7 python2.7-minimal
Suggested packages:
python-doc python-tk python-apt-dbg python-apt-doc libcurl4-gnutls-dev
python-pycurl-dbg python-pycurl-doc python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-apt
python-minimal python-pycurl python-software-properties python2.7
python2.7-minimal
0 upgraded, 10 newly installed, 0 to remove and 3 not upgraded.
Need to get 4,070 kB of archives.
After this operation, 17.3 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Premi Y per continuare.
Dopo aver eseguito il comando, aggiungi il repository PPA Java webupd8team nel tuo sistema eseguendo:
sudo add-apt-repository ppa:webupd8team/java
Premere [ENTER] quando richiesto. Ora puoi installare facilmente l'ultima versione di Java 8 con apt.
Innanzitutto, aggiorna gli elenchi dei pacchetti per recuperare i pacchetti disponibili dal nuovo PPA:
sudo apt-get update
Quindi installa l'ultima versione di Oracle Java 8 con questo comando:
sudo apt-get install oracle-java8-installer
[email protected]:~# sudo apt-get install oracle-java8-installer
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
binutils gsfonts gsfonts-x11 java-common libfontenc1 libxfont1 x11-common xfonts-encodings xfonts-utils
Suggested packages:
binutils-doc binfmt-support visualvm ttf-baekmuk | ttf-unfonts | ttf-unfonts-core ttf-kochi-gothic | ttf-sazanami-gothic ttf-kochi-mincho | ttf-sazanami-mincho ttf-arphic-uming firefox
| firefox-2 | iceweasel | mozilla-firefox | iceape-browser | mozilla-browser | epiphany-gecko | epiphany-webkit | epiphany-browser | galeon | midbrowser | moblin-web-browser | xulrunner
| xulrunner-1.9 | konqueror | chromium-browser | midori | google-chrome
The following NEW packages will be installed:
binutils gsfonts gsfonts-x11 java-common libfontenc1 libxfont1 oracle-java8-installer x11-common xfonts-encodings xfonts-utils
0 upgraded, 10 newly installed, 0 to remove and 3 not upgraded.
Need to get 6,498 kB of archives.
After this operation, 20.5 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Premi Y per continuare.
DEVI accettare la licenza disponibile in http://java.com/license se desideri utilizzare Oracle JDK, facendo clic sul pulsante OK.
Il pacchetto installa una sorta di meta-installer che poi scarica i binari direttamente da Oracle. Dopo il processo di installazione, controlla la versione di Java installata eseguendo il comando seguente
java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
Ora hai installato Java 8 e passeremo al passaggio successivo.
Installazione dell'applicazione Solr
Solr può essere installato su Ubuntu in diversi modi, in questo articolo ti mostrerò come installare l'ultimo pacchetto dal sorgente.
Inizieremo scaricando la distribuzione Solr. Per prima cosa trova l'ultima versione del pacchetto disponibile dalla loro pagina web, copia il link e scaricalo usando il comando wget
Per questa configurazione, utilizzeremo http://www.us.apache.org/dist/lucene/solr/6.0.1/
cd /tmp
wget http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
[email protected]:/tmp# wget http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
--2016-06-03 11:31:54-- http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
Resolving www.us.apache.org (www.us.apache.org)... 140.211.11.105
Connecting to www.us.apache.org (www.us.apache.org)|140.211.11.105|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 137924507 (132M) [application/x-gzip]
Saving to: ‘solr-6.0.1.tgz’
Ora, esegui il comando riportato di seguito per estrarre il file di installazione del servizio:
tar xzf solr-6.0.1.tgz solr-6.0.1/bin/install_solr_service.sh --strip-components=2
E installa Solr come servizio usando lo script:
sudo ./install_solr_service.sh solr-6.0.1.tgz
L'output sarà simile a questo:
[email protected]:/tmp# sudo ./install_solr_service.sh solr-6.0.1.tgz
id: ‘solr’: no such user
Creating new user: solr
Adding system user `solr' (UID 111) ...
Adding new group `solr' (GID 117) ...
Adding new user `solr' (UID 111) with group `solr' ...
Creating home directory `/var/solr' ...
Extracting solr-6.0.1.tgz to /opt
Installing symlink /opt/solr -> /opt/solr-6.0.1 ...
Installing /etc/init.d/solr script ...
Installing /etc/default/solr.in.sh ...
? solr.service - LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled)
Active: active (exited) since Fri 2016-06-03 11:37:05 CEST; 5s ago
Docs: man:systemd-sysv-generator(8)
Process: 20929 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)
Jun 03 11:36:43 server1 systemd[1]: Starting LSB: Controls Apache Solr as a Service...
Jun 03 11:36:44 server1 su[20934]: Successful su for solr by root
Jun 03 11:36:44 server1 su[20934]: + ??? root:solr
Jun 03 11:36:44 server1 su[20934]: pam_unix(su:session): session opened for user solr by (uid=0)
Jun 03 11:37:05 server1 solr[20929]: [313B blob data]
Jun 03 11:37:05 server1 solr[20929]: Started Solr server on port 8983 (pid=20989). Happy searching!
Jun 03 11:37:05 server1 solr[20929]: [14B blob data]
Jun 03 11:37:05 server1 systemd[1]: Started LSB: Controls Apache Solr as a Service.
Service solr installed.
Usa questo comando per verificare lo stato del servizio
service solr status
Dovresti vedere un output che inizia con questo:
[email protected]:/tmp# service solr status
? solr.service - LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled)
Active: active (exited) since Fri 2016-06-03 11:37:05 CEST; 39s ago
Docs: man:systemd-sysv-generator(8)
Process: 20929 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)
Jun 03 11:36:43 server1 systemd[1]: Starting LSB: Controls Apache Solr as a Service...
Jun 03 11:36:44 server1 su[20934]: Successful su for solr by root
Jun 03 11:36:44 server1 su[20934]: + ??? root:solr
Jun 03 11:36:44 server1 su[20934]: pam_unix(su:session): session opened for user solr by (uid=0)
Jun 03 11:37:05 server1 solr[20929]: [313B blob data]
Jun 03 11:37:05 server1 solr[20929]: Started Solr server on port 8983 (pid=20989). Happy searching!
Jun 03 11:37:05 server1 solr[20929]: [14B blob data]
Jun 03 11:37:05 server1 systemd[1]: Started LSB: Controls Apache Solr as a Service.
Creazione di una raccolta di ricerca Solr:
Usando Solr, possiamo creare più raccolte. Esegui il comando fornito, menziona il nome della raccolta (qui per iniziare) e specifica le sue configurazioni.
sudo su - solr -c "/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"
[email protected]:/tmp# sudo su - solr -c "/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"
Copying configuration to new core instance directory:
/var/solr/data/gettingstarted
Creating new core 'gettingstarted' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=gettingstarted&instanceDir=gettingstarted
{
"responseHeader":{
"status":0,
"QTime":4427},
"core":"gettingstarted"}
È stata creata la nuova directory principale per la nostra prima raccolta. Per visualizzare il file dello schema predefinito, vai a:
/opt/solr/server/solr/configsets/data_driven_schema_configs/conf
Utilizzare l'interfaccia Web Solr
Apache Solr è ora accessibile sulla porta predefinita, che è 8983. L'interfaccia utente di amministrazione dovrebbe essere accessibile all'indirizzo http://your_server_ip:8983/solr. La porta dovrebbe essere consentita dal firewall per eseguire i collegamenti.
Ad esempio:
http://192.168.1.100:8983/solr/
Per vedere i dettagli della prima raccolta che abbiamo creato in precedenza, seleziona la raccolta "per iniziare" nel menu a sinistra.
Dopo aver selezionato la raccolta "Guida introduttiva", seleziona Documenti nel menu a sinistra. Lì puoi inserire dati reali in formato JSON che saranno ricercabili da Solr. Per aggiungere più dati, copia e incolla il seguente esempio JSON nel campo del documento:
{
"id": 1,
"book_title": "My First Book",
"published": 1985,
"description": "All about Linux"
}
Fare clic sul pulsante Invia documento dopo aver aggiunto i dati.
Status: success
Response:
{
"responseHeader": {
"status": 0,
"QTime": 189
}
}
Ora possiamo fare clic su Query sul lato sinistro quindi fai clic su Esegui Interroga ,
Vedremo qualcosa del genere:
{
"responseHeader":{
"status":0,
"QTime":24,
"params":{
"q":"*:*",
"indent":"on",
"wt":"json",
"_":"1464947017056"}},
"response":{"numFound":1,"start":0,"docs":[
{
"id":"1",
"book_title":["My First Book"],
"published":[1985],
"description":["All about Linux"],
"_version_":1536108205792296960}]
}}
Download dell'immagine della macchina virtuale di questo tutorial
Questo tutorial è disponibile come immagine della macchina virtuale pronta per l'uso in formato ovf/ova per gli abbonati Howtoforge. Il formato VM è compatibile con VMWare e Virtualbox. L'immagine della macchina virtuale utilizza i seguenti dettagli di accesso:
Accesso SSH/Shell
Nome utente:amministratore
Password:howtoforge
Questo utente dispone dei diritti sudo.
Si prega di modificare tutte le password di cui sopra per proteggere la macchina virtuale.
Conclusione
Dopo aver installato con successo l'interfaccia Web Solr su Ubuntu, ora puoi inserire i dati o interrogare i dati con l'API Solr e l'interfaccia Web.