Un moteur de données massif distribué pour la recherche verticale en C ++.
Configuration flexible . SF1R pourrait être hautement configurable pour prendre en charge le moteur de recherche distribué ou non distribué. Pour les langues en Asie, différents types d'analyseur morphlogique ou de tokenzer dédié pourraient également être appliqués pour être adaptés à différentes situations. Chaque instance SF1R peut être configurée pour prendre en charge plusieurs collections, tandis que le concept de collection pourrait être comparé à "Table" dans RDBMS . Les collections peuvent gérer totalement dynamiquement sans arrêter l'instance de serveur.
Prouvé commercialement . SF1R a été entièrement prouvé dans des environnements commerciaux avec à la fois des situations compliquées et une concurrence ultra élevée. Afin de satisfaire à différents types d'exigences, trois types d'indices sont pris en charge dans SF1R, y compris l'index inversé basé sur des fichiers de Lucene, l'index inversé basé sur la mémoire pure avec des performances de décompression ultra élevées et l'index de soi succinct. Il s'agit d'un déploiement pratique pour un cloud de recherche avec des verticaux distribués et non distribués, tous sont tous derrière un seul proxy inverse HTTP basé sur NGINX pour fournir une entrée unifiée.
Composants minières extensibles . Au début de SF1R, il y a des dizaines de composants miniers attachés, tels que duplicate detection , taxonomy generation , query recommendation , collaborative filtering , ..., etc. Pour garder le référentiel aussi Lite que possible, nous avons fait quelques raffinements pour éliminer la plupart des composants miniers. Cependant, l'architecture de SF1R a garanti la flexibilité d'introduire l'un d'eux, en fait, un index de soi succinct, il a été encapsulé à l'aide de composants miniers pour les commodités.
Les documents chinois étaient accessibles ici, tandis que nous avons également préparé le rapport technique anglais.
Nous venons de passer à C++ 11 pour SF1R récemment, et GCC 4.8 est nécessaire pour construire SF1R en conséquence. Nous ne recommandons pas d'utiliser Ubuntu pour la construction de projets en raison des références imbriquées entre de nombreuses bibliothèques. Centos / Redhat / Gentoo / Coreos sont une plate-forme préférée. Vous avez également besoin CMake et Boost 1.56 pour construire le référentiel. Il y a la liste des référentiels dépendants:
CMake : les modules CMake requis pour construire tous les projets IzeneCloud C ++.
Izenelib : les bibliothèques générales C ++.
ICMA : La bibliothèque chinoise de l'analyseur morphologique.
IJMA : La bibliothèque d'analyseurs morphologiques japonaise.
ILPLIB : Les bibliothèques de traitement du langage.
IDMLIB : les bibliothèques d'exploration de données.
En outre, certains référentiels tiers sont requis:
Tokyocabinet : La bibliothèque de valeurs clés de Tokyocabinet est rarement utilisée, mais nous avions une encapsulation de méthode d'accès unifiée.
Google Glog : la bibliothèque de journalisation fournie par Google.
Thrift : c'est facultatif, si vous voulez que SF1R puisse se connecter à Cassandra, une friperie est requise et nous avons préparé le client C ++ Cassandra dans Izenelib.
De plus, il y a deux projets supplémentaires:
Nginx : le proxy inverse basé sur Nginx pour SF1R. Il s'agit du premier projet NGINX à pouvoir se connecter avec Zookeeper pour prendre conscience de la topologie du nœud de SF1R.
Ruby Driver : le client Ruby pour SF1R, il contient également un expéditeur d'API Web à des fins de test.
Pour utiliser SF1R, vous devez avoir des fichiers de configuration situés dans le répertoire config . Après cela:
$ cd bin
$ ./CobraProcess -F configVeuillez consulter les documents pour une utilisation ultérieure.
Le projet SF1R est publié sous la licence Apache, version 2.0: http://www.apache.org/licenses/license-2.0