Apache Solr su Managed Flex Server

Solr è una piattaforma di ricerca open source compilata in Java e sviluppata dal progetto Lucene di Apache. Una delle attività principali di Solr è la ricerca full text ottimizzata.

La presente guida descrive in che modo potete attivare Solr sul vostro Managed Flex Server.

Requisiti

Per il funzionamento di Solr devono essere soddisfatti i seguenti requisiti:

  • Java Runtime Environment (JRE) è disponibile sul vostro Managed Flex Server e viene costantemente aggiornato da noi.
  • Solr può essere attivato a partire da Managed Flex Server M.

Installazione e attivazione

Per poter eseguire i seguenti passaggi è necessario aver effettuato l’accesso al Managed Flex Server tramite SSH.

Al fine di avere una panoramica chiara delle applicazioni installate, si consiglia di installare le applicazioni in una cartella dell’app all’interno della home clienti. In questa guida all’installazione e alla configurazione salviamo l’applicazione su ~/app/solr. Questa struttura delle cartelle può essere creata come di seguito:

mkdir -p ~/app/solr

Download di Solr

Per il download di Solr passate all’application directory creata in precedenza:

cd ~/app/solr

Successivamente, è necessario scaricare ed estrarre la versione più recente dal sito Solr:

wget https://www-eu.apache.org/dist/lucene/solr/x.x.x/solr-x.x.x.tgz
tar zxf solr-x.x.x.tgz

Si consiglia di creare un collegamento simbolico di ~/app/solr/current sulla cartella scaricata per evitare di dover utilizzare i numeri di versione nei file di configurazione. Questo collegamento simbolico può essere creato come di seguito:

ln -s ~/app/solr/solr-x.x.x ~/app/solr/current

Configurazione di Solr

Affinché Solr sia in ascolto solo su 127.0.0.1, è necessario impostare la seguente opzione nel file di configurazione ~/app/solr/current/bin/solr.in.sh:

~/app/solr/current/bin/solr.in.sh
SOLR_OPTS="$SOLR_OPTS -Djetty.host=127.0.0.1"

In caso contrario, Solr è in ascolto su qualsiasi indirizzo IP del server ed è raggiungibile da Internet!

Testare Solr

La presente sezione descrive in che modo potete avviare Solr, salvare un documento al suo interno e interrogarlo nuovamente.

Dopo aver terminato correttamente l’installazione e la configurazione, potete avviare Solr per i primi test in primo piano (argomento -f) come di seguito:

~/app/solr/current/bin/solr start -f

Poiché ora Solr funziona, tramite SSH potete creare su una seconda shell un core Solr in cui è possibile salvare e interrogare nuovamente i documenti. Il seguente comando genera un core Solr con il nome example-core.

~/app/solr/current/bin/solr create_core -c example-core

Un core Solr fa riferimento a un indice con le relative configurazioni e i relativi file di log delle transazioni.

Salvare un documento in Solr

Con il seguente script PHP salvato su ~/app/solr/hello-world-insert.php è possibile salvare un documento in Solr mediante una libreria PHP Solr. Il documento viene creato con l’ID 1, la categoria example e il testo "Hello World!".

~/app/solr/hello-world-insert.php
<?php 

$options = array
(
    'hostname' => '127.0.0.1',
    'port' => 8983,
    'path' => 'solr/example-core'
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 1);
$doc->addField('cat', 'example');
$doc->addField('text', 'Hello World!');

$updateResponse = $client->addDocument($doc);
$client->commit();

print_r($updateResponse->getResponse());

?>

Lo script PHP può essere eseguito come di seguito e il documento viene salvato in Solr:

/usr/local/php71/bin/php ~/app/solr/hello-world-insert.php

Attualmente la libreria PHP Solr è disponibile solo per la versione PHP 7.1.

Cercare un documento in Solr

Per cercare documenti in Solr è possibile utilizzare lo script PHP sottostante, salvato su ~/app/solr/hello-world-search.php. In questo esempio vengono cercati tutti i documenti con la categoria example e per tutti i documenti trovati vengono visualizzati i campi id, cat e text.

~/app/solr/hello-world-search.php
<?php
			
$options = array
(
    'hostname' => '127.0.0.1',
    'port' => 8983,
    'path' => 'solr/example-core'
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('cat:example');

$query->setStart(0);

$query->setRows(50);

$query->addField('id')->addField('cat')->addField('text');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

Ora è possibile eseguire anche questo script al fine di testare la funzione:

/usr/local/php71/bin/php ~/app/solr/hello-world-search.php

Integrazione

Funzionamento con il Custom Service Control

Finora avete avviato le vostre applicazioni manualmente mediante la shell. Se questa operazione può rappresentare una semplice soluzione per i test e per lo sviluppo, non lo è per il funzionamento. Il Custom Service Control (CSC) si può occupare del funzionamento e della gestione automatica della propria applicazione, ad esempio dell’avvio e dell’arresto in caso di interventi di manutenzione sul server.

Nel caso in cui finora non abbiate ancora utilizzato il CSC, è necessario avviarlo al fine di creare i dati di configurazione necessari:

hpservices supervisord start
supervisord successfully started

La configurazione di Solr nel CSC è molto semplice. Create dunque un nuovo Custom Service per Solr:

hpservices supervisord add solr
successfully created dir for solr: /home/username/.services/supervisord/solr
successfully created dir for solr: /home/username/.services/supervisord/solr/log
supervisord service config file written: /home/username/.services/supervisord/solr/service.conf

Nel file ~/.services/supervisord/solr/service.conf viene creato uno schema di configurazione per il nuovo servizio. Per Solr è necessario adeguare solo il command, mentre tutti gli altri valori proposti possono essere adottati (rimuovere il punto e virgola all’inizio della riga).

~/.services/supervisord/solr/service.conf
[program:solr]
command=%(ENV_HOME)s/app/solr/current/bin/solr start -f
directory=%(ENV_HOME)s/app/solr/ ; directory to cwd to before exec (default no cwd)
autostart=true ; start application at supervisord start (default: true)
stopwaitsecs=10 ; max num secs to wait before SIGKILL (default 10)
stdout_logfile=%(ENV_HOME)s/.services/supervisord/solr/log/default.log
stdout_logfile_maxbytes=1MB ; filesize at which to rotate logfiles (default ist 50MB)
stdout_logfile_backups=10 ; number of stdout logfile backups (0 means none, default 10)
stderr_logfile=%(ENV_HOME)s/.services/supervisord/solr/log/default.err
stderr_logfile_maxbytes=1MB ; filesize at which to rotate logfiles (default is 50MB)
stderr_logfile_backups=10 ; number of stderr logfile backups (0 means none, default 10)

Affinché il Supervisord possa monitorare il processo di Solr, è assolutamente necessario far funzionare Solr in primo piano (opzione -f).

Qualora il processo di Solr continuasse ad essere eseguito per i test indicati precedentemente, interromperlo innanzitutto con Ctrl + C.

Con supervisorctl update è possibile attivare una nuova configurazione di Solr:

supervisorctl update
solr: added process group

Achtung: Falls Sie einen Fehler erhalten, muss zuerst einmalig "hpservices supervisord start" ausgeführt werden.

Per informazioni più dettagliate sull’uso e sulle possibilità disponibili con il CSC fate riferimento alla Custom Service Control.

Proxy web sull’interfaccia di amministrazione di Solr

Per rendere la vostra applicazione accessibile tramite HTTP(s), è necessario configurare il sito web nel pannello di controllo Hostpoint in modo che il server web inoltri tutte le richieste a Solr come proxy.

Nel vostro pannello di controllo Hostpoint create un sito web del tipo “Proxy Nginx su applicazione propria”:

Solr IT

Indirizzo del server e porta

La funzione proxy si aspetta che l’applicazione sia in ascolto all’indirizzo IPv4 di loopback 127.0.0.1 ed è quindi necessario indicare solo la porta: 8983.

Proteggere l’accesso con una password

Affinché l’accesso al sito web sia protetto dall’esterno con nome utente e password, è possibile creare un file htpasswd come di seguito:

htpasswd -c ~/app/solr/.htpasswd admin

Questo file deve essere memorizzato nel pannello di controllo Hostpoint su​ «Siti web​» > «Modifica siti web​» > «Sicurezza».

Una volta terminata correttamente la configurazione, potrete accedere al sito web solo inserendo nome utente e password.

Ulteriori informazioni

 

Ha trovato ciò che stava cercando?

I nostri professionisti dell’assistenza la possono aiutare personalmente!

 

© 2001 - Hostpoint AG