此存储库包含 Bing 的超级新鲜、新闻和媒体索引所使用的 BitFunnel 索引的代码。该算法在 SIGIR 2017 上发表的一篇论文《BitFunnel:Revisiting Signatures for Search》中进行了描述。该视频很好地概述了该算法。
这里发布的代码库是为了让研究社区能够复制 SIGIR 论文的结果。该文档非常薄,但我们鼓励您查看以下内容:
为了构建 BitFunnel,您需要 CMake (2.8.11+) 和现代 C++ 编译器(gcc 5+、clang 3.5+ 或 VC 2015+)。您可以直接运行 CMake 来生成适合您平台的构建设置。或者,我们有一些脚本具有我们使用的默认值。
对于 *nix 平台(包括 OS X),
./Configure_Make.sh
cd build-make
make
make test
请注意,虽然这些说明适用于make
构建,但也可以通过更改cmake
命令来创建ninja
文件而不是Makefiles
来使用ninja
进行构建。这些没有在说明中列出,因为ninja
需要为某些开发人员安装额外的依赖项,但如果您想使用ninja
可以通过apt-get
、 brew
等使用它,并且速度明显比make
更快。
如果您使用的是 Ubuntu 15+,您可以使用以下命令安装依赖项:
sudo apt-get install clang cmake
在 Ubuntu 14 及更低版本上,您需要安装较新版本的 CMake。要安装足够新的 CMake,请参阅此链接。如果您使用 gcc,您还需要确保您有 gcc-5 ( sudo apt-get install g++-5
)。
要覆盖默认编译器,请设置CXX
和CC
环境变量。例如,如果您将 clang-3.8 安装为clang-3.8
并使用 bash:
export CXX="clang++-3.8"
export CC="clang-3.8"
安装 XCode,然后运行以下命令使用 Homebrew (http://brew.sh/) 安装所需的软件包:
brew install cmake
BitFunnel 可以使用标准 *nix makefile 或 XCode 在 OS X 上构建。为了生成和构建 makefile,请在BitFunnel
根目录中运行:
如果您想创建 Xcode 项目而不是使用 Makefile,请运行:
./Configure_XCode.sh
如果您使用 XCode,则当CMakeLists
更改时(例如,添加或删除源文件时),您必须重新运行Configure_XCode
或运行ZERO_CHECK
目标。
您将需要这些工具:
注意:如果您第一次安装 Visual Studio 并选择默认安装选项,您将不会获得 C++ 编译器。要强制安装 C++ 编译器,您需要创建新的 C++ 项目或打开现有的 C++ 项目。
克隆 BitFunnel 存储库,然后在 BitFunnel 的根文件夹中运行以下命令:
.Configure_MSVC.bat
注意:如果您使用不同版本的 Visual Studio,则需要修改 CMake -G 选项。 Bitfunnel 必须构建为 64 位程序,因此“Win64”必须是指定 G 选项文本的一部分。
此时,您可以从 Visual Studio 打开生成的解决方案BitFunnel_CMake.sln
,然后构建它。或者,您可以使用cmake --build build-MSVC
从命令行构建。