FEMTO é um sistema de indexação e busca para consultas em sequências de bytes. FEMTO significa índice FM para memória externa com otimizações de rendimento. Esta ferramenta oferece suporte à construção de grandes índices em paralelo com MPI e, em seguida, à pesquisa de grandes índices com um servidor multithread.
FEMTO requer uma máquina de 64 bits para construir e testar. Máquinas de 32 bits são suportadas apenas para pesquisa. FEMTO é conhecido por construir com GCC para Linux/x86-64.
Para construir o FEMTO a partir de um tarball de lançamento, você precisará de um compilador C++, libssl-dev e, opcionalmente, MPI. Ao construir a partir do código-fonte, você também precisará de flex, bison, autotools e libtool. Funcionou com GNU bison 2.5 e 2.4.1.
MPI é necessário para construção de índice paralelo. Observe que a execução de MPI em máquinas de endian diferentes não é suportada.
Se desejar usar a construção de índice paralelo MPI, você precisará instalar uma versão do MPI que suporte threads. Usamos OpenMPI 1.8.8, configurado da seguinte forma:
./configure --prefix=/opt/openmpi1.8.8 --enable-mpirun-prefix-by-default --enable-mpi-thread-multiple --with-threads fazer make install # em todos os nós de computação # Para garantir que mpirun e mpicc estejam no caminho para uso com FEMTO exportar PATH=$PATH:/opt/openmpi1.8.8/bin exportar LD_LIBRARY_PATH=/opt/openmpi1.8.8/lib
Certifique-se de atender aos requisitos primeiro!
Recomendamos começar com um tarball de lançamento FEMTO em https://github.com/femto-dev/femto/releases .
Se você preferir usar um checkout de origem, existem dependências de compilação adicionais.
Se você está começando com uma verificação de origem, como acontece com
clone do git https://github.com/femto-dev/femto.git cd femto
você também precisará gerar o script de configuração:
sh autogen.sh
Para construir FEMTO, emita os seguintes comandos:
./configure fazer
Você verá muitos avisos de que coisas são declaradas/definidas, mas não usadas; isso é normal e não é um problema. Se você receber erros e a compilação falhar, talvez você não tenha todas as bibliotecas de desenvolvimento necessárias instaladas. (por exemplo, se estiver executando o g++ e não conseguir encontrar -lssl, isso indicaria que você precisa instalar o libssl)
Para executar os testes de unidade incluídos, use
fazer verificação
Para instalar o FEMTO em um local específico, certifique-se de incluir --prefix na sua linha de configuração, como em
./configure --prefix ~/femto_install
Como de costume,
fazer instalar
instalará as ferramentas FEMTO no destino especificado por ./configure.
Você também pode executar os comandos do diretório de construção.
Consulte src/mod_femto/README para obter informações sobre como instalar o módulo Apache FEMTO.
Para construir um índice, execute
femto/src/dcx_cc/femto_index --tmp /caminho/para/tmp_dir --outfile index.femto arquivos_ou_diretórios_para_index
Então, para consultar o índice, use femto_search. Para contar o número de ocorrências (rapidamente!), use:
femto/src/main_cc/femto_search /caminho/para/index_dir --count 'padrão'
Para relatar documentos correspondentes (o tempo depende do número relatado), use:
femto/src/main_cc/femto_search /caminho/para/index_dir 'padrão'
Para relatar documentos e compensações correspondentes (o tempo depende do número relatado), use:
femto/src/main_cc/femto_search /caminho/para/index_dir --offsets 'padrão'
Para saber mais sobre quais tipos de padrões você pode usar, consulte femto/src/main/QUERY_FORMAT.txt
A fonte FEMTO inclui o pacote Google RE2, jQuery, jQuery SlickGrid e jQuery SVG.