L’indexeur indexe le contenu des bases publiées dans une application Phraseanet et permet ainsi la recherche dans le contenu des fiches descriptives des documents.
L’indexeur fonctionne en arrière plan, il “surveille” les bases à indexer (apparition ou disparition des bases) et maintient les index “full-text”, “valeur” et “thésaurus”.
L’indexeur est un éxécutable en ligne de commande, “phraseanet_indexer”.
Il peut être éxécuté directement en console, planifié (cron, tâche planifiée...) ou bien via le “Task-manager” de Phraseanet.
L’indexeur nécessite la présence des bibliothèques suivantes :
Après compilation (voir spécificités Windows), copier l’éxécutable dans un répertoire avec les droits d’éxécution.
Ces arguments spécifient l’ “application-box” (base SQL de l’application Phraseanet) dans laquelle sont publiées les bases à indexer.
–host : adresse de la base
–port : port (normalement 3306 pour MySQL)
–base : nom de la base “application-box”
–user : compte SQL pour la connexion
–password : mot de passe du compte de connexion
–default-character-set : jeu de caractères de la connexion
–old : argument obligatoire !
En cours d’éxécution, l’indexeur peut être interrompu par Ctrl-C (ou sous linux et OSX par l’envoi du signal sigint). L’argument “socket” permet d’interrompre également l’indexeur via telnet.
Pour optimiser les performances, l’indexeur indexe les documents par lots (par défaut 50). Si la mémoire consommée est trop importante il est possible de diminuer ce nombre avec l’option “flush” (au détriment de la vitesse).
Lors de l’indexation de champs liés à un thésaurus, les nouveaux termes sont placés comme “termes candidats”. L’option “clng” permet de spécifier la langue à attribuer par défaut aux termes candidats.
–debug : Type des messages générés.
Il peut être souhaitable de ne pas afficher certaines options de la ligne de commmande (notamment le mot de passe). L’indexeur peut lire des options dans un fichier, ce fichier devant être placé dans le même répertoire que l’éxécutable.
L’indexeur est censé fonctionner en continu. Cette option permet d’indexer les documents concernés puis de quitter l’indexeur immédiatement.
–help : Affiche l’aide
L’argument “help” détaille les différentes options précédemment citées ainsi que les valeurs par défaut.
A des fins de contrôle, l’indexeur peut écrire différents types d’opérations effectuées (traitement xml, opérations sql...). Ces 7 types de messages peuvent être filtrés par les 7 bits (masque) de la valeur de debug.
Ces “logs” sont normalement envoyés au système (syslog pour linux ou OSX, journal des événements pour Windows). L’option “nolog” permet d’envoyer les messages sur l’écran.
Note
Un masque de log réglé à –debug=64 (flush ops.) permet de contrôler le fonctionnement sans trop charger les logs.
L’indexeur peut être testé avec l’option ‘-?’ qui doit afficher l’aide :
phraseanet_indexer -?
phraseanet_indexer version 3.9.0.4
Usage : phraseanet_indexer <options>
[-? | --help] : this help
[-v | --version : display version and quit
[-h | --host]=<addr> : host addr. of applicationBox (default '127.0.0.1')
[-P | --port]=<port> : port of applicationBox (default '3306')
[-b | --base]=<base> : database of applicationBox (default 'phrasea')
[-u | --user]=<user> : user account for connection to applicationBox
(default 'root')
[-p | --password]=<pwd> : password for connection to applicationBox
(default '')
[-s | --socket]=<port> : port for telnet control (default none)
[-f | --flush]=<n> : flush every n records (default 50)
[-o | --old] : use old 'sbas' table instead of 'xbas'
[ --quit] : index once and quit
[-c | --clng]=<lng> : default language for new candidates terms
(default 'fr')
[-n | --nolog] : do not log, but out to console
[-d | --debug]=<mask> : debug mask (to console)
1 : xml parsing
2 : sql errors
4 : sql ok
8 : memory alloc.
16 : record ops.
32 : structure ops.
64 : flush ops.
[-@ | --optfile]=<file> : read (more) arguments from text file
(see 'sample_args.txt')
[--default-character-set]=<charset> : charset of applicationBox AND dataBoxes
(default none)
Exemple d’arguments dans un fichier “indexerargs.txt”
phraseanet_indexer --debug=64 --nolog --optfile=indexerargs.txt
# connection to application-box...
# ...host, port, base, user, password
--host=127.0.0.1
--port=3306
--base=phrasea
--user=phraseanet
--password=xxxxxxxxx
# socket to talk (telnet) to indexer
--socket=2055
# use 'sbas' table (mandatory)
-o
# candidates default language
--clng=fr
# sql connections encoding
--default-character-set=utf8
L’indexeur peut être éxécuté par la tâche “Indexation”, les réglages des attributs sont alors disponibles via l’interface graphique de la tâche.
Après compilation, “sudo make install” va copier l’éxécutable dans le répertoire des binaires (par ex . /usr/local/bin).
L’indexeur est livré pré-compilé pour Windows.
Télécharger la dernière version “https://github.com/alchemy-fr/Phraseanet-Indexer/blob/master/WIN32/Release_win32/”, et placer l’éxécutable dans un répertoire distinct (par ex. dans “Program Files\Phraseanet-Indexer\phraseanet_indexer.exe”).
Note
Certaines versions (comportant des corrections pour des versions précédentes de l’application) sont également disponibles au téléchargement.
Pour des raisons de concordance de versions il est recommandé de copier les dll des bibliothèques requises dans le répertoire de l’éxécutable (à coté de phraseanet_indexer.exe).
Ces bibliothèques peuvent être téléchargées dans :
Classiquement l’indexeur est éxécuté par une tâche Phraseanet “Indexation”. Sous Windows l’indexeur peut également être installé en service via 3 options spécifiques
--install : installe le service "Phraseanet-Indexer"
--remove : désinstalle le service
--run : éxécute simplement en ligne de commande (à utiliser impérativement
pour l'éxécution en tâche)
ex :
C:\Phraseanet-Indexer\phraseanet_indexer.exe -h=localhost -P=3306 -b=ab_test
-u=phuser -p=**** --socket=25200 --default-character-set=utf8 -o -n
-d=0 --install
Si l’indexeur est installé comme service Windows, supprimer -ou ne pas activer- la tâche “Indexeur” correspondante