FEMTO 是一种用于查询字节序列的索引和搜索系统。 FEMTO 代表具有吞吐量优化的外部存储器的 FM 指数。该工具支持与 MPI 并行构建大型索引,然后使用多线程服务器搜索大型索引。
FEMTO 需要 64 位机器来构建和测试。 32 位计算机仅支持搜索。众所周知,FEMTO 是使用适用于 Linux/x86-64 的 GCC 构建的。
要从发布 tarball 构建 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 制作 在所有计算节点上进行安装# # 确保 mpirun 和 mpicc 位于与 FEMTO 一起使用的路径中 导出 PATH=$PATH:/opt/openmpi1.8.8/bin 导出 LD_LIBRARY_PATH=/opt/openmpi1.8.8/lib
首先确保您已满足要求!
我们建议从 https://github.com/femto-dev/femto/releases 中的 FEMTO 版本 tarball 开始。
如果您更喜欢使用源代码签出,则还有其他构建依赖项。
如果您从源签出开始,就像
git 克隆 https://github.com/femto-dev/femto.git CD飞小区
您还需要生成配置脚本:
sh autogen.sh
要构建 FEMTO,请发出以下命令:
./配置 制作
你会看到很多警告,提示事物已声明/定义但未使用;这是正常现象,不是问题。如果出现错误并且编译失败,则可能没有安装所有必需的开发库。 (例如,如果它正在运行 g++ 并且无法找到 -lssl,则表明您需要安装 libssl)
要运行包含的单元测试,请使用
进行检查
要在特定位置安装 FEMTO,请务必在配置行中包含 --prefix,如下所示
./configure --prefix ~/femto_install
照常,
进行安装
将把 FEMTO 工具安装到 ./configure 指定的目的地。
您还可以从构建目录运行命令。
有关安装 FEMTO apache 模块的信息,请参阅 src/mod_femto/README。
要构建索引,请运行
femto/src/dcx_cc/femto_index --tmp /path/to/tmp_dir --outfile索引.femto 文件或目录到索引
然后,要查询索引,请使用 femto_search。要计算出现的次数(快速!),请使用:
femto/src/main_cc/femto_search /path/to/index_dir --count '模式'
要报告匹配的文档(时间取决于报告的数量),请使用:
femto/src/main_cc/femto_search/path/to/index_dir '模式'
要报告匹配的文档和偏移量(时间取决于报告的数量),请使用:
femto/src/main_cc/femto_search /path/to/index_dir --offsets 'pattern'
要详细了解可以使用哪些类型的模式,请参阅 femto/src/main/QUERY_FORMAT.txt
FEMTO 源包括 Google RE2 包、jQuery、jQuery SlickGrid 和 jQuery SVG。