Dieses Repo enthält den Code für den BitFunnel-Index, der von den Superfresh-, Nachrichten- und Medienindizes von Bing verwendet wird. Der Algorithmus wird in BitFunnel: Revisiting Signatures for Search beschrieben, einem auf der SIGIR 2017 vorgestellten Artikel. Dieses Video gibt einen guten Überblick über den Algorithmus.
Die Codebasis hier wurde veröffentlicht, um der Forschungsgemeinschaft die Replikation der Ergebnisse des SIGIR-Papiers zu ermöglichen. Die Dokumentation ist ziemlich dürftig, wir empfehlen Ihnen jedoch, sich Folgendes anzusehen:
Um BitFunnel zu erstellen, benötigen Sie CMake (2.8.11+) und einen modernen C++-Compiler (gcc 5+, clang 3.5+ oder VC 2015+). Sie können CMake direkt ausführen, um das entsprechende Build-Setup für Ihre Plattform zu generieren. Alternativ verfügen wir über einige Skripte, in denen die von uns verwendeten Standardeinstellungen verfügbar sind.
Für *nix-Plattformen (einschließlich OS X),
./Configure_Make.sh
cd build-make
make
make test
Beachten Sie, dass diese Anweisungen zwar für einen make
Build gelten, es aber auch möglich ist, mit ninja
zu erstellen, indem Sie den Befehl cmake
so ändern, dass ninja
-Dateien anstelle von Makefiles
erstellt werden. Diese sind in den Anweisungen nicht aufgeführt, da ninja
für einige Entwickler die Installation einer zusätzlichen Abhängigkeit erfordert. Wenn Sie ninja
jedoch verwenden möchten, ist diese über apt-get
, brew
usw. verfügbar und wesentlich schneller als make
.
Wenn Sie Ubuntu 15+ verwenden, können Sie Abhängigkeiten installieren mit:
sudo apt-get install clang cmake
Unter Ubuntu 14 und niedriger müssen Sie eine neuere Version von CMake installieren. Informationen zur Installation eines ausreichend neuen CMake finden Sie unter diesem Link. Wenn Sie gcc verwenden, müssen Sie außerdem sicherstellen, dass Sie über gcc-5 verfügen ( sudo apt-get install g++-5
).
Um den Standard-Compiler zu überschreiben, legen Sie die Umgebungsvariablen CXX
und CC
fest. Wenn Sie beispielsweise clang-3.8 als clang-3.8
installiert haben und Bash verwenden:
export CXX="clang++-3.8"
export CC="clang-3.8"
Installieren Sie XCode und führen Sie dann den folgenden Befehl aus, um die erforderlichen Pakete mit Homebrew (http://brew.sh/) zu installieren:
brew install cmake
BitFunnel kann unter OS X entweder mit Standard-*nix-Makefiles oder mit XCode erstellt werden. Um Makefiles zu generieren und zu erstellen, führen Sie im Stammverzeichnis BitFunnel
Folgendes aus:
Wenn Sie ein Xcode-Projekt erstellen möchten, anstatt Makefiles zu verwenden, führen Sie Folgendes aus:
./Configure_XCode.sh
Wenn Sie XCode verwenden, müssen Sie entweder Configure_XCode
erneut ausführen oder das ZERO_CHECK
-Ziel ausführen, wenn sich die CMakeLists
ändern, z. B. wenn Quelldateien hinzugefügt oder entfernt werden.
Sie benötigen diese Werkzeuge:
Hinweis : Wenn Sie Visual Studio zum ersten Mal installieren und die Standardinstallationsoptionen auswählen, erhalten Sie keinen C++-Compiler. Um die Installation des C++-Compilers zu erzwingen, müssen Sie entweder ein neues C++-Projekt erstellen oder ein vorhandenes C++-Projekt öffnen.
Klonen Sie das BitFunnel-Repository und führen Sie dann den folgenden Befehl im Stammordner von BitFunnel aus:
.Configure_MSVC.bat
Hinweis : Sie müssen die CMake-Option -G ändern, wenn Sie eine andere Version von Visual Studio verwenden. Bitfunnel muss als 64-Bit-Programm erstellt werden, daher muss „Win64“ Teil des angegebenen G-Optionstextes sein.
An dieser Stelle können Sie die generierte Lösung BitFunnel_CMake.sln
in Visual Studio öffnen und dann erstellen. Alternativ können Sie mit cmake --build build-MSVC
über die Befehlszeile erstellen.