FEMTO — это система индексирования и поиска запросов по последовательностям байтов. FEMTO означает FM-индекс для внешней памяти с оптимизацией пропускной способности. Этот инструмент поддерживает создание больших индексов параллельно с MPI, а затем поиск по большим индексам с помощью многопоточного сервера.
Для сборки и тестирования FEMTO требуется 64-битная машина. 32-битные машины поддерживаются только для поиска. Известно, что FEMTO собирается с помощью GCC для Linux/x86-64.
Чтобы собрать FEMTO из архива выпуска, вам понадобится компилятор C++, libssl-dev и, при необходимости, MPI. При сборке из исходного кода вам также понадобятся flex, bison, autotools и libtool. Он работал с GNU bison 2.5 и 2.4.1.
MPI необходим для параллельного построения индекса. Обратите внимание, что MPI работает на компьютерах с разным порядком байтов и не поддерживается.
Если вы хотите использовать параллельное построение индекса MPI, вам необходимо установить версию MPI, поддерживающую потоки. Мы использовали OpenMPI 1.8.8, настроенный следующим образом:
./configure --prefix=/opt/openmpi1.8.8 --enable-mpirun-prefix-by-default --enable-mpi-thread-multiple --with-threads делать make install # на всех вычислительных узлах # Чтобы убедиться, что mpirun и mpicc находятся в пути для использования с FEMTO экспортировать PATH=$PATH:/opt/openmpi1.8.8/bin экспортировать LD_LIBRARY_PATH=/opt/openmpi1.8.8/lib
Сначала убедитесь, что вы выполнили требования!
Мы рекомендуем начать с архива релиза FEMTO с https://github.com/femto-dev/femto/releases.
Если вы предпочитаете использовать проверку исходного кода, существуют дополнительные зависимости сборки.
Если вы начинаете с проверки исходного кода, как в случае
git-клон https://github.com/femto-dev/femto.git компакт-диск фемто
вам также нужно будет сгенерировать скрипт настройки:
ш autogen.sh
Чтобы собрать FEMTO, введите следующие команды:
./настроить делать
Вы увидите множество предупреждений о том, что что-то объявлено/определено, но не используется; это нормально и не проблема. Если вы получаете ошибки и компиляция не удалась, возможно, у вас не установлены все необходимые библиотеки разработки. (например, если он использует g++ и не может найти -lssl, это означает, что вам необходимо установить libssl)
Чтобы запустить включенные модульные тесты, используйте
сделать чек
Чтобы установить FEMTO в определенном месте, обязательно включите --prefix в строку конфигурации, как в
./configure --prefix ~/femto_install
По-прежнему,
сделать установку
установит инструменты FEMTO в место назначения, указанное в ./configure.
Вы также можете запускать команды из каталога сборки.
См. src/mod_femto/README для получения информации об установке модуля Apache FEMTO.
Чтобы построить индекс, запустите
femto/src/dcx_cc/femto_index --tmp /путь/к/tmp_dir --outfile index.femto files_or_directories_to_index
Затем, чтобы запросить индекс, используйте femto_search. Чтобы подсчитать количество вхождений (быстро!), используйте:
femto/src/main_cc/femto_search /path/to/index_dir --count 'шаблон'
Чтобы сообщить о совпадающих документах (время зависит от количества сообщений), используйте:
femto/src/main_cc/femto_search /путь/к/index_dir 'шаблон'
Чтобы сообщить о совпадающих документах и смещениях (время зависит от количества сообщений), используйте:
femto/src/main_cc/femto_search /path/to/index_dir --offsets 'шаблон'
Чтобы узнать больше о том, какие типы шаблонов вы можете использовать, см. femto/src/main/QUERY_FORMAT.txt.
Исходный код FEMTO включает пакет Google RE2, jQuery, jQuery SlickGrid и jQuery SVG.