Eine verteilte massive Datenmotor für die vertikale Suche in C ++.
Flexible Konfiguration . SF1R könnte sehr konfigurierbar sein, um eine verteilte oder nicht verteilte Suchmaschine zu unterstützen. Für Asiensprachen könnten auch verschiedene Arten von Morphlogical Analyzer oder Dedized Tokenizer angewendet werden, um an verschiedene Situationen angepasst zu werden. Jede SF1R -Instanz könnte so konfiguriert werden, dass mehrere Sammlungen unterstützt werden, während das Konzept der Sammlung mit "Tabelle" in RDBMS verglichen werden kann. Sammlungen könnten völlig dynamisch verwaltet werden, ohne die Serverinstanz zu stoppen.
Kommerziell bewiesen . SF1R wurde in kommerziellen Umgebungen sowohl mit komplizierten Situationen als auch mit extrem hoher Parallelität vollständig nachgewiesen. Um verschiedene Arten von Anforderungen zu erfüllen, werden drei Arten von Indizes innerhalb von SF1R unterstützt, darunter die Lucene -ähnliche Datei, die invertierten Index basiert, der invertierte invertierte Index mit ultra hoher Dekompressionsleistung und prägnanter Selbstindex. Dies ist eine praktische Bereitstellung für eine Such-Cloud mit verteilten und nicht verteilten Branchen.
Bergbaukomponenten länger . In der frühen Phase von SF1R sind zehn Bergbaukomponenten wie duplicate detection , taxonomy generation , query recommendation , collaborative filtering , ... usw. beigefügt. Um das Repository so wie möglich zu halten, haben wir einige Verfeinerungen vorgenommen, um die meisten Bergbaukomponenten zu entfernen. Die Architektur von SF1R hat jedoch die Flexibilität garantiert, eines von ihnen einzuführen, tatsächlich eines des Index-prägnanten Selbstindex, das sie unter Verwendung von Bergbaukomponenten für Annehmlichkeiten eingekapselt hat.
Die chinesischen Dokumente können hier zugegriffen werden, während wir auch den englischen technischen Bericht erstellten.
Wir haben gerade in letzter Zeit für SF1R zu C++ 11 umgestellt, und GCC 4.8 ist erforderlich, um SF1R entsprechend zu erstellen. Aufgrund der verschachtelten Referenzen unter vielen Bibliotheken empfehlen wir nicht, Ubuntu für das Projektbau zu verwenden. CentOS / redhat / gentoo / coreos sind bevorzugte Plattform. Sie benötigen auch CMake und Boost 1.56 um das Repository zu erstellen. Hier sind die Liste der abhängigen Repositories:
CMake : Die CMake -Module, die erforderlich sind, um alle IzeneCloud C ++ - Projekte zu erstellen.
IzeneLib : Der Allzweck C ++ Bibliotheken.
ICMA : Die chinesische Bibliothek der morphologischen Analysator.
IJMA : Die japanische Bibliothek der morphologischen Analysator.
ILPLIB : Die Sprachverarbeitungsbibliotheken.
IDMLIB : Die Data Mining -Bibliotheken.
Außerdem sind einige Repositores von Drittanbietern erforderlich:
Tokyocabinet : Die Tokyocabinet-Schlüsselwertbibliothek wird selten verwendet, aber wir hatten eine Einkapselung einer einheitlichen Zugriffsmethode.
Google Glog : Die von Google bereitgestellte Protokollierungsbibliothek.
Sparsamkeit : Dies ist optional. Wenn Sie SF1R mit Cassandra herstellen möchten, ist Sparsamkeit erforderlich, und wir haben den C ++ - Cassandra -Client in Izenelib vorbereitet.
Darüber hinaus gibt es zwei zusätzliche Projekte:
Nginx : Der Nginx -basierte Reverse -Proxy für SF1R. Dies ist das erste NGINX -Projekt, das sich mit Zookeeper verbinden kann, um die Knotentopologie von SF1R aufmerksam zu machen.
Ruby -Treiber : Der Ruby -Client für SF1R enthält auch einen Web -API -Absender zum Testzweck.
Um SF1R zu verwenden, sollten Sie Konfigurationsdateien im config befinden. Danach:
$ cd bin
$ ./CobraProcess -F configBitte beachten Sie die Dokumente, um weiter zu verwenden.
Das SF1R-Projekt wird unter der Apache-Lizenz veröffentlicht, Version 2.0: http://www.apache.org/licenses/license-2.0