FEMTO est un système d'indexation et de recherche de requêtes sur des séquences d'octets. FEMTO signifie FM-index pour External Memory with Throughput Optimizations. Cet outil prend en charge la création de grands index en parallèle avec MPI, puis la recherche de grands index avec un serveur multithread.
FEMTO nécessite une machine 64 bits pour être construit et testé. Les machines 32 bits sont prises en charge uniquement pour la recherche. FEMTO est connu pour être construit avec GCC pour Linux/x86-64.
Pour créer FEMTO à partir d'une archive tar de version, vous aurez besoin d'un compilateur C++, de libssl-dev et éventuellement de MPI. Lors de la construction à partir des sources, vous aurez également besoin de flex, bison, autotools et libtool. Il a fonctionné avec GNU bison 2.5 et 2.4.1.
MPI est requis pour la construction d’index parallèles. Notez que les exécutions MPI sur des machines de différentes finalités ne sont pas prises en charge.
Si vous souhaitez utiliser la construction d'index parallèle MPI, vous devrez installer une version de MPI prenant en charge les threads. Nous avons utilisé OpenMPI 1.8.8, configuré de la manière suivante :
./configure --prefix=/opt/openmpi1.8.8 --enable-mpirun-prefix-by-default --enable-mpi-thread-multiple --with-threads faire make install # sur tous les nœuds de calcul # Pour vous assurer que mpirun et mpicc sont dans le chemin à utiliser avec FEMTO export PATH=$PATH:/opt/openmpi1.8.8/bin exporter LD_LIBRARY_PATH=/opt/openmpi1.8.8/lib
Assurez-vous d’abord d’avoir rempli les conditions !
Nous vous recommandons de commencer par une archive tar de version FEMTO à partir de https://github.com/femto-dev/femto/releases .
Si vous préférez utiliser une extraction de source, il existe des dépendances de build supplémentaires.
Si vous débutez avec une extraction de source comme avec
clone git https://github.com/femto-dev/femto.git cd femto
vous devrez également générer le script de configuration :
sh autogen.sh
Pour créer FEMTO, exécutez les commandes suivantes :
./configurer faire
Vous verrez de nombreux avertissements indiquant que des éléments sont déclarés/définis mais non utilisés ; c'est normal et ce n'est pas un problème. Si vous obtenez des erreurs et que la compilation échoue, il se peut que toutes les bibliothèques de développement requises ne soient pas installées. (par exemple, s'il exécute G++ et ne parvient pas à trouver -lssl, cela indiquerait que vous devez installer libssl)
Pour exécuter les tests unitaires inclus, utilisez
faire un chèque
Pour installer FEMTO à un endroit particulier, assurez-vous d'inclure --prefix dans votre ligne de configuration, comme dans
./configure --prefix ~/femto_install
Comme d'habitude,
faire installer
installera les outils FEMTO à la destination spécifiée par ./configure.
Vous pouvez également exécuter les commandes depuis le répertoire build.
Voir src/mod_femto/README pour plus d'informations sur l'installation du module Apache FEMTO.
Pour créer un index, exécutez
femto/src/dcx_cc/femto_index --tmp /path/to/tmp_dir --outfile index.femto fichiers_or_directories_to_index
Ensuite, pour interroger l'index, utilisez femto_search. Pour compter le nombre d'occurrences (rapidement !), utilisez :
femto/src/main_cc/femto_search /path/to/index_dir --count 'modèle'
Pour signaler les documents correspondants (le délai dépend du nombre signalé), utilisez :
femto/src/main_cc/femto_search /path/to/index_dir 'modèle'
Pour signaler les documents et les compensations qui correspondent (le temps dépend du nombre de rapports), utilisez :
femto/src/main_cc/femto_search /path/to/index_dir --offsets 'modèle'
Pour en savoir plus sur les types de modèles que vous pouvez utiliser, consultez femto/src/main/QUERY_FORMAT.txt
La source FEMTO inclut le package Google RE2, jQuery, jQuery SlickGrid et jQuery SVG.