Este repositório contém o código para o índice BitFunnel usado pelos índices superfrescos, de notícias e de mídia do Bing. O algoritmo é descrito em BitFunnel: Revisiting Signatures for Search, um artigo apresentado no SIGIR 2017. Este vídeo oferece uma boa visão geral do algoritmo.
A base de código aqui foi publicada para permitir que a comunidade de pesquisa replique os resultados do artigo SIGIR. A documentação é bastante escassa, mas recomendamos que você observe o seguinte:
Para construir o BitFunnel você precisará do CMake (2.8.11+) e de um compilador C++ moderno (gcc 5+, clang 3.5+ ou VC 2015+). Você pode executar o CMake diretamente para gerar a configuração de compilação apropriada para sua plataforma. Como alternativa, temos alguns scripts que possuem os padrões que usamos disponíveis.
Para plataformas *nix (incluindo OS X),
./Configure_Make.sh
cd build-make
make
make test
Observe que embora essas instruções sejam para uma compilação make
, também é possível compilar usando ninja
alterando o comando cmake
para criar arquivos ninja
em vez de Makefiles
. Eles não estão listados nas instruções porque ninja
requer a instalação de uma dependência extra para alguns desenvolvedores, mas se você quiser usar ninja
ele está disponível via apt-get
, brew
, etc., e é substancialmente mais rápido que make
.
Se você estiver no Ubuntu 15+, poderá instalar dependências com:
sudo apt-get install clang cmake
No Ubuntu 14 e versões anteriores, você precisará instalar uma versão mais recente do CMake. Para instalar um CMake novo o suficiente, consulte este link. Se estiver usando o gcc, você também precisará ter o gcc-5 ( sudo apt-get install g++-5
).
Para substituir o compilador padrão, defina as variáveis de ambiente CXX
e CC
. Por exemplo, se você tiver o clang-3.8 instalado como clang-3.8
e estiver usando o bash:
export CXX="clang++-3.8"
export CC="clang-3.8"
Instale o XCode e execute o seguinte comando para instalar os pacotes necessários usando o Homebrew (http://brew.sh/):
brew install cmake
O BitFunnel pode ser construído no OS X usando makefiles *nix padrão ou XCode. Para gerar e construir makefiles, no diretório raiz BitFunnel
execute:
Se você deseja criar um projeto Xcode em vez de usar Makefiles, execute:
./Configure_XCode.sh
Se você usar o XCode, terá que executar novamente Configure_XCode
ou executar o destino ZERO_CHECK
quando o CMakeLists
for alterado, por exemplo, quando os arquivos de origem forem adicionados ou removidos.
Você precisará destas ferramentas:
Observação : se você instalar o Visual Studio pela primeira vez e selecionar as opções de instalação padrão, não obterá um compilador C++. Para forçar a instalação do compilador C++, você precisa criar um novo projeto C++ ou abrir um projeto C++ existente.
Clone o repositório BitFunnel e execute o seguinte comando na pasta raiz do BitFunnel:
.Configure_MSVC.bat
Observação : você precisará modificar a opção CMake -G se usar uma versão diferente do Visual Studio. O Bitfunnel deve ser construído como um programa de 64 bits, portanto, 'Win64' deve fazer parte do texto da opção G especificado.
Neste ponto, você pode abrir a solução gerada BitFunnel_CMake.sln
no Visual Studio e compilá-la. Alternativamente, você pode construir a partir da linha de comando usando cmake --build build-MSVC
.