Solr est une plateforme de recherche Open Source, codée en Java et développée par le projet Apache Lucene. L’un des principaux objectifs de Solr est la recherche en plein texte optimisée.
Ce manuel décrit comment mettre en service Solr sur votre Managed Flex Server.
Exigences
Les exigences suivantes doivent être satisfaites pour le fonctionnement de Solr:
- Java Runtime Environment (JRE) est disponible sur votre Managed Flex Server et est constamment mis à jour par nos soins.
- Solr peut être mis en service à partir de Managed Flex Server M.
Installation et mise en service
Afin de pouvoir exécuter les étapes suivantes, vous devez être connecté à votre Managed Flex Server via SSH.
Nous vous recommandons d’installer vos applications dans un dossier d’application de votre Home client, afin d’avoir un aperçu clair de vos applications installées. Dans ce guide d’installation et de configuration Solr, nous plaçons l’application sous ~/app/solr. Vous pouvez créer cette structure de dossiers comme suit:
mkdir -p ~/app/solr
Téléchargement de Solr
Pour télécharger Solr, basculez dans le répertoire d’application créé ci-dessus:
cd ~/app/solr
Vous devez ensuite télécharger la dernière version depuis le site web de Solr et la décompresser:
wget https://downloads.apache.org/lucene/solr/x.x.x/solr-x.x.x.tgz -O /tmp/solr.tar.gz
tar -xzf /tmp/solr.tar.gz -C ~/app/solr
rm -rf /tmp/solr.tar.gz
Il est recommandé de créer un lien symbolique de ~/app/solr/current vers le dossier téléchargé afin de ne pas avoir à utiliser les numéros de version dans les fichiers de configuration. Ce lien symbolique peut être créé comme suit:
ln -s ~/app/solr/solr-x.x.x ~/app/solr/current
Configuration de Solr
Pour que Solr écoute uniquement sur 127.0.0.1, l’option suivante doit être mise dans le fichier de configuration ~/app/solr/current/bin/solr.in.sh:
SOLR_OPTS="$SOLR_OPTS -Djetty.host=127.0.0.1">/code>
Solr écoute sinon sur chaque adresse IP du serveur et serait ainsi accessible depuis Internet!
Test de Solr
Cette section décrit comment démarrer Solr, y stocker un document et l’interroger à nouveau.
Après une installation et une configuration réussies, vous pouvez démarrer Solr comme suit pour les premiers tests au premier plan (argument -f):
~/app/solr/current/bin/solr start -f
Puisque Solr fonctionne maintenant, vous pouvez créer un core Solr via SSH sur un deuxième shell, dans lequel les documents peuvent être stockés et interrogés. La commande suivante crée un core Solr avec le nom example-core.
_JAVA_OPTIONS="-Xms32m -Xmx256m" ~/app/solr/current/bin/solr create_core -c example-core
Un core Solr référence un index avec les configurations correspondantes et les fichiers journaux des transactions.
Stocker un document dans Solr
Le script PHP suivant, stocké dans ~/app/solr/hello-world-insert.php, permet de stocker un document dans Solr avec Solr PHP Library. Le document est créé avec ID 1, la catégorie example et le texte «Hello World!».
<?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());
?>
Le script PHP peut être exécuté comme suit et le document est sauvegardé dans Solr:
php ~/app/solr/hello-world-insert.php
Chercher un document dans Solr
Pour chercher des documents dans Solr, vous pouvez utiliser le script PHP ci-dessous, stocké sous ~/app/solr/hello-world-search.php. Dans cet exemple, tous les documents avec la catégorie example sont cherchés et les champs id, cat et text sont renvoyés pour les documents trouvés.
<?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);
?>
Vous pouvez maintenant également exécuter ce script afin de tester la fonction:
php ~/app/solr/hello-world-search.php
Intégration
Fonctionnement avec le Custom Service Control
Vous avez jusqu’à présent démarré votre application manuellement via le shell. Bien que cela puisse être un moyen facile lors du test et du développement, il ne s’agit pas d’une option viable pour le fonctionnement productif. Le Custom Service Control (CSC) peut s’occuper du fonctionnement et de la gestion automatique de votre application, par exemple le démarrage et l’arrêt pendant les travaux de maintenance sur votre serveur.
Si vous n’avez pas encore utilisé le CSC, commencez par le démarrer afin de créer les fichiers de configuration nécessaires:
hpservices supervisord start
supervisord successfully started
La configuration de Solr dans le CSC est très simple. Pour ce faire, créez un nouveau Custom Service pour 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
Un cadre de configuration pour le nouveau service est alors créé dans le fichier ~/.services/supervisord/solr/service.conf. Seule la command doit être ajustée pour Solr, vous pouvez sinon reprendre toutes les valeurs suggérées (enlever le point-virgule au début de la ligne).
[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)
Pour que le Supervisord puisse surveiller le processus Solr, Solr doit obligatoirement être exécuté au premier plan (option -f).
Si le processus Solr fonctionne encore pour des tests précédents dans le guide, veuillez d’abord le terminer avec Ctrl + C.
supervisorctl update vous permet d’activer la nouvelle configuration de Solr:
supervisorctl update
solr: added process group
Attention: En cas d'erreur, "hpservices supervisord start" doit d'abord être exécuté une fois.
Pour de plus amples détails sur l’utilisation et les possibilités qui vous sont offertes par le CSC, consultez le manuel du Custom Service Control.
Proxy Web (Nginx) sur interface d’administration Solr
Si vous voulez maintenant rendre votre application accessible via HTTP(s), vous devez configurer votre site Web dans le control panel Hostpoint afin que le serveur Web transfère les requêtes à Solr comme proxy.
Dans votre Control Panel Hostpoint, créez un site Web de type «Proxy Nginx sur application propre»:
Adresse et port du serveur
La fonction proxy s’attend à ce que votre application écoute l’adresse loopback IPv4 127.0.0.1 et vous devez donc uniquement indiquer le port: 8983.
Protéger l’accès avec un mot de passe
Afin de protéger l’accès à votre site Web depuis l’extérieur avec nom d’utilisateur et mot de passe, vous pouvez créer un fichier htpasswd comme suit:
htpasswd -c ~/app/solr/.htpasswd admin
Ce fichier doit être stocké dans le panneau de contrôle Hostpoint sous "Sites Web" > "Réglages web" > "Protection par mot de passe".
Après une configuration réussie, vous pouvez uniquement accéder à votre site Web avec un nom d’utilisateur et un mot de passe.
Informations complémentaires
- Custom Service Control (CSC)
- Aperçu Solr: http://lucene.apache.org/solr/guide/7_6/a-quick-overview.html
- Télécharger Solr: https://lucene.apache.org/solr/mirrors-solr-latest-redir.html
- Tutoriels Solr: http://lucene.apache.org/solr/guide/7_6/solr-tutorial.html#solr-tutorial
- Exemples PHP Solr: http://php.net/manual/de/solr.examples.php
- Reverse inverse: https://fr.wikipedia.org/wiki/Proxy_inverse
Pour envoyer une demande d'assistance au support, merci d'utiliser ce formulaire-ci.