Ceci est une ancienne révision du document !
Moteur de recherche
searx
Métamoteur de recherche pour centraliser tous les moteurs de recherche propre à chaque site qui est en rapport avec le projet. Toujours en cours de développement, le repo git est ici : https://git.khaganat.net/neodarz/ryzomcore_searx
xapian omega
Moteur de recherche pour indexer le contenu d'un site, toujours en cours de test par neodarz. (Lien vers le site officie) Pour ceux qui veulent le tester la configuration réalisée pour les tests se trouvera ici. Le jeu de test est une copie du site de nevrax.org directement copié depuis la webarchive : https://git.khaganat.net/neodarz/nevrax-website-self-hostable
installation
Tester uniquement en local pour le moment, sur archlinux.
Installation du packet AUR: xapian-omega, l'installation n'est pas complète et l'usage n'est pas “plug&play”.
Le paquet AUR n'étant pas à jour, voici ma version du paquet avec la dernière version du soft ainsi que le bon check sum (ça vous évitera de le faire vous même):
# Maintainer: lestb <tkhdlstfl dot l plus aur at gmail dot com>
# Contributor: Denis Kobozev <d.v.kobozev at gmail dot com>
# Package Repository: https://github.com/mij-aur-packages/xapian-omega
pkgname=xapian-omega
pkgver=1.4.7
pkgrel=1
pkgdesc="Indexers and CGI search frontend for Xapian"
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h')
url="http://www.xapian.org/"
license=('GPL')
depends=('xapian-core' 'perl' 'pcre')
source=(http://oligarchy.co.uk/xapian/${pkgver}/${pkgname}-${pkgver}.tar.xz)
sha256sums=('d1b029c62cd4e3c6216515e22c72c9d45018135cd4f50ce336b21b2046045323')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr --sysconfdir=/etc
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR=${pkgdir} install
}
Il faut créer ces deux dossiers et leur attribuer les bons droit pour l'utilisateur qui va générer la base de données:
- /usr/lib/xapian-omega/templates
- /usr/lib/xapian-omega/data
- /var/log/omega
Une fois installer il faut récupérer dans les sources le dossier templates et copier sont, par example, dans le dossier /usr/lib/xapian-omega/templates.
Pour archlinux le fichier de configuration n'étant pas correct il faut le mettre à jour de la manière suivante :
# Directory containing Xapian databases: database_dir /usr/lib/xapian-omega/data # Directory containing OmegaScript templates: template_dir /usr/lib/xapian-omega/templates # Default template name if the CGI parameter "FMT" is not specified. # (If not specified here, the default template name is "query"): #default_template query # Default database name if the CGI parameter "DB" is not specified. # (If not specified here, the default database name is "default"): #default_db default # Directory to write Omega logs to: log_dir /var/log/omega # Directory containing any cdb files for the $lookup OmegaScript command: cdb_dir /var/lib/omega/cdb
utilisation
création de la base de données
Pour la génération de la base de données on estime que le jeu de test a été lancé avec la commande php -S localhost:8080 et de ce fait que le site se trouve à l'adresse http://localhost:8080. On estime aussi que le répertoire de travail est la racine du site de nevrax.org directement copié depuis la webarchive dont le lien se trouve plus haut.
Pour générer la base de données, dans le cas de l'usage du jeu de test définit plus haut, les commandes sont les suivantes :
D'abord on index les fichiers où l'on peut faire de l'extraction de texte :
omindex --db /usr/lib/xapian-omega/data --url http://localhost:8080 --filter=text/markdown,html:'pandoc -f markdown -t html' --filter=application/msword,html:'unoconv --stdout -f html .'
Puis ensuite on index les autres fichiers où l'on n'a pas pu faire de l'extraction de texte :
omindex --db /usr/lib/xapian-omega/data --url http://localhost:8080 --filter '*:true' --retry-failed .
La commande omindex doit être de la forme suivante : omindex <options> <path> où <options> correspond aux options et <path> le répértoire du site à indexer.
Pour éviter d'aller chercher dans la doc, l'option –db indique le chemin de du dossier dans lequel la base de données sera sauvegardée. L'option –url indique le prefix à utiliser pour faire le lien vers le site et les options –filter des précisions pour chaque filtre si omindex ne sait pas quoi faire avec certainnes extension. Dans ces cas la, soit le filtre en question n'avait pas les bons logiciels d'installer pour récupérer le contenu du fichier, soit il ne pouvait pas récupérer le texte sur certains fichiers comme les images.
Le filtre –filter=text/markdown,html:'pandoc -f markdown -t html' indique de convertir le markdown en html. Normalement il est censé pouvoir le faire, c'est natif mais vu qu'il doit le convertir aussi en html, le faire avec pendoc ne changera pas grand chose. Mais c'est un problème un réglé, un jour.
Le filtre –filter=application/msword,html:'unoconv –stdout -f html' permet de convertir les documents word en html mais, sans doute du fait que la commande a été exécuté sur linux et que Microsoft Word n'est pas installé, il faut utiliser LibreOffice et ce n'est pas géré nativement par omindex.
Le filtre –filter '*:true' permet seulement d'indexer les fichiers, c'est utile pour tout fichier binaire comme les images. Si l'option est présente, aucun texte ne sera extrait !
Recherche
Ligne de commande
Pour faire une recherche rapidement dans la base, pour tester si ça marche:
/usr/lib/xapian-omega/bin/omega 'P=webarchive' HITSPERPAGE=10 > test.html; firefox test.html
Simple commande qui permet faire une recherche et de l'ouvrir avec firefox pour voir le résultat.
Page web
Pour faire en sorte que ce soit accessible via votre navigateur web, il faut en premier lieu activer CGI.
Pour apache (c'est ce que j'utilise sur mes serveurs, pour les autres soft aller chercher sur le net et/ou compléter cette page de wiki) il suffit d'activer le module cgid_module ou cgi_module selon si vous avez activé le module mpm_prefork_module.
Une fois le module activé il faut configurer apache pour préciser le dossier dans lequel se trouve omega. Pour les tests sur archlinux il y a déjà le dossier /srv/http/cgi-bin qui est configuré. Si jamais il y a besoin, la configuration est la suivante :
<Directory "/srv/http/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
Dans le dossier /srv/http/cgi-bin il faut copier l'executable omega, pour archlinux il se trouve dans le dossier /usr/lib/xapian-omega/bin/omega. Il est aussi possible de copier le fichier /etc/omega.conf de configuration. S'il n'est pas présent dans /srv/http/cgi-bin alors ça sera le fichier /etc/omega.conf qui sera utilisé.
Et voila, dans ce cas, il suffit de se rendre sur http://127.0.0.1/cgi-bin/omega.cgi et c'est fini.





