Apache Solr sur Managed Flex Server

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 devrez ensuite télécharger la dernière version à partir du site Web Solr et la dézipper:

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

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:

~/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.

~/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!».

~/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());

?>

Le script PHP peut être exécuté comme suit et le document est sauvegardé dans Solr:

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

La Solr PHP Library est actuellement disponible uniquement pour la version PHP 7.1.

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.

~/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);

?>

Vous pouvez maintenant également exécuter ce script afin de tester la fonction:

/usr/local/php71/bin/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).

~/.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)

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 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»:

Solr FR

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 control panel Hostpoint sous «Pages Web» > «Editer page Web» > «Sécurité» > «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

 

Avez-vous trouvé ce que vous cherchiez?

Nos professionnels de l’assistance se feront un plaisir de vous aider personnellement!

 

© 2001 - Hostpoint AG