Um mecanismo de dados maciço distribuído para pesquisa vertical em C ++.
Configuração flexível . O SF1R pode ser altamente configurável para oferecer suporte ao mecanismo de pesquisa distribuído ou não distribuído. Para idiomas da Ásia, diferentes tipos de analisador morfloógico ou tokenizador dedicado também podem ser aplicados para serem adaptados a diferentes situações. Cada instância do SF1R pode ser configurada para suportar várias coleções, enquanto o conceito de coleção pode ser comparado com a "tabela" no RDBMS . As coleções poderiam gerenciar totalmente dinamicamente sem interromper a instância do servidor.
Comprovado comercialmente . O SF1R foi totalmente comprovado em ambientes comerciais, com situações complicadas e uma simultaneidade ultra alta. Para atender a diferentes tipos de requisitos, três tipos de índices são suportados no SF1R, incluindo o índice invertido de arquivo baseado no Lucene, com base em memória pura, com base invertida baseada em memória com desempenho de descompressão ultra alto e auto -índice sucinto. Esta é uma implantação prática para uma nuvem de pesquisa com verticais distribuídos e não distribuídos, todos eles estão por trás de um único proxy reverso HTTP baseado em Nginx para fornecer entrada unificada.
Componentes de mineração extensíveis . No estágio inicial do SF1R, há dezenas de componentes de mineração anexados, como duplicate detection , taxonomy generation , query recommendation , collaborative filtering , ... etc. Para manter o repositório o mais possível, fizemos alguns refinamentos para remover a maioria dos componentes de mineração. No entanto, a arquitetura do SF1R garantiu a flexibilidade de introduzir qualquer um deles, na verdade, um dos índices de índice-sucinto, foi encapsulado usando o componente de mineração para conveniências.
Os documentos chineses podem ser acessados aqui, enquanto também preparamos o relatório técnico em inglês.
Acabamos de mudar para C++ 11 para SF1R recentemente, e GCC 4.8 é necessário para criar o SF1R correspondentemente. Não recomendamos usar o Ubuntu para construção de projetos devido às referências aninhadas entre muitas bibliotecas. O CentOS / Redhat / Gentoo / Coreos é a plataforma preferida. Você também precisa CMake e Boost 1.56 para construir o repositório. Aqui estão a lista de repositórios dependentes:
CMake : Os módulos CMake necessários para construir todos os projetos do iZenecloud C ++.
Izenelib : As bibliotecas C ++ de uso geral.
ICMA : A Biblioteca do Analisador Morfológico Chinês.
IJMA : A Biblioteca Morfológica Japonesa.
Ilplib : As bibliotecas de processamento de idiomas.
idmlib : as bibliotecas de mineração de dados.
Além disso, são necessários alguns repositórios de terceiros:
Tokyocabinet : A biblioteca de valor-chave Tokyocabinet é usada raramente, mas tivemos um encapsulamento de método de acesso unificado.
Google Glog : a biblioteca de registro fornecida pelo Google.
IMPROBILIDADE : Isso é opcional, se você deseja que o SF1R seja capaz de se conectar ao Cassandra, a economia é necessária e preparamos o cliente C ++ Cassandra no izenelib.
Além disso, existem dois projetos extras:
Nginx : o proxy reverso baseado em Nginx para SF1R. Este é o primeiro projeto NGINX a poder se conectar com o Zookeeper para conhecer a topologia dos nó do SF1R.
Ruby Driver : O cliente Ruby para SF1R, também contém um remetente da API da Web para fins de teste.
Para usar o SF1R, você deve ter arquivos de configuração localizados no diretório config . Depois disso:
$ cd bin
$ ./CobraProcess -F configConsulte os documentos para uso adicional.
O projeto SF1R é publicado sob a licença Apache, versão 2.0: http://www.apache.org/license/license-2.0