FEMTO ist ein Indexierungs- und Suchsystem für Abfragen nach Bytefolgen. FEMTO steht für den FM-Index für External Memory with Throughput Optimizations. Dieses Tool unterstützt das Erstellen großer Indizes parallel zu MPI und das anschließende Durchsuchen großer Indizes mit einem Multithread-Server.
Zum Erstellen und Testen von FEMTO ist eine 64-Bit-Maschine erforderlich. 32-Bit-Maschinen werden nur für die Suche unterstützt. FEMTO baut bekanntermaßen mit GCC für Linux/x86-64.
Um FEMTO aus einem Release-Tarball zu erstellen, benötigen Sie einen C++-Compiler, libssl-dev und optional MPI. Wenn Sie aus dem Quellcode erstellen, benötigen Sie außerdem Flex, Bison, Autotools und Libtool. Es hat mit GNU Bison 2.5 und 2.4.1 funktioniert.
Für die parallele Indexkonstruktion ist MPI erforderlich. Beachten Sie, dass MPI-Ausführungen auf Computern mit unterschiedlichem Endianness nicht unterstützt werden.
Wenn Sie die MPI-parallele Indexkonstruktion verwenden möchten, müssen Sie eine Version von MPI installieren, die Threads unterstützt. Wir haben OpenMPI 1.8.8 verwendet und wie folgt konfiguriert:
./configure --prefix=/opt/openmpi1.8.8 --enable-mpirun-prefix-by-default --enable-mpi-thread-multiple --with-threads machen make install # auf allen Rechenknoten # Um sicherzustellen, dass sich mpirun und mpicc im Pfad zur Verwendung mit FEMTO befinden export PATH=$PATH:/opt/openmpi1.8.8/bin export LD_LIBRARY_PATH=/opt/openmpi1.8.8/lib
Stellen Sie zunächst sicher, dass Sie die Anforderungen erfüllt haben!
Wir empfehlen, mit einem FEMTO-Release-Tarball von https://github.com/femto-dev/femto/releases zu beginnen.
Wenn Sie lieber einen Quell-Checkout verwenden möchten, gibt es zusätzliche Build-Abhängigkeiten.
Wenn Sie mit einer Quellenprüfung beginnen, wie bei
Git-Klon https://github.com/femto-dev/femto.git CD-Femto
Sie müssen auch das Konfigurationsskript generieren:
sh autogen.sh
Um FEMTO zu erstellen, geben Sie die folgenden Befehle ein:
./konfigurieren machen
Sie werden viele Warnungen sehen, dass Dinge deklariert/definiert, aber nicht verwendet werden; Das ist normal und kein Problem. Wenn Sie Fehlermeldungen erhalten und die Kompilierung fehlschlägt, sind möglicherweise nicht alle erforderlichen Entwicklungsbibliotheken installiert. (Wenn beispielsweise g++ ausgeführt wird und -lssl nicht gefunden wird, bedeutet dies, dass Sie libssl installieren müssen.)
Um die enthaltenen Komponententests auszuführen, verwenden Sie
Scheck machen
Um FEMTO an einem bestimmten Ort zu installieren, müssen Sie unbedingt --prefix in Ihre Konfigurationszeile einfügen, wie in
./configure --prefix ~/femto_install
Wie gewöhnlich,
make installieren
installiert die FEMTO-Tools an dem durch ./configure angegebenen Ziel.
Sie können die Befehle auch aus dem Build-Verzeichnis ausführen.
Informationen zur Installation des FEMTO-Apache-Moduls finden Sie unter src/mod_femto/README.
Um einen Index zu erstellen, führen Sie Folgendes aus:
femto/src/dcx_cc/femto_index --tmp /path/to/tmp_dir --outfile index.femto files_or_directories_to_index
Verwenden Sie dann femto_search, um den Index abzufragen. Um die Anzahl der Vorkommen (schnell!) zu zählen, verwenden Sie:
femto/src/main_cc/femto_search /path/to/index_dir --count 'pattern'
Um übereinstimmende Dokumente zu melden (die Zeit hängt von der Anzahl der gemeldeten Dokumente ab), verwenden Sie Folgendes:
femto/src/main_cc/femto_search /path/to/index_dir 'pattern'
Um übereinstimmende Dokumente und Offsets zu melden (die Zeit hängt von der Anzahl der gemeldeten Dokumente ab), verwenden Sie Folgendes:
femto/src/main_cc/femto_search /path/to/index_dir --offsets 'pattern'
Weitere Informationen darüber, welche Arten von Mustern Sie verwenden können, finden Sie unter femto/src/main/QUERY_FORMAT.txt
Die FEMTO-Quelle umfasst das Google RE2-Paket, jQuery, jQuery SlickGrid und jQuery SVG.