此儲存庫包含 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
從命令列建置。