|. Anwendung – Installation – Entwicklung – Dokumentation – Deep Learning – FAQ – TIPPS – EA Half Hour – Technische Themen |
kumo search
ist ein End-to-End-Suchmaschinen-Framework, das Volltextabruf, invertierten Index, Vorwärtsindex, Sortierung, Caching, Indexschichtung, Interventionssystem, Feature-Sammlung, Offline-Computing, Speichersystem und andere Funktionen unterstützt. kumo search
läuft auf der EA
Plattform (Elastic Automic Infrastructure Architecture) und unterstützt Funktionen wie工程自动化
,服务治理
,实时数据
,服务降级与容灾
in mehreren Computerräumen und mehreren Clustern.
Mit der Entwicklung des Internets ist die Suche im gesamten Internet nicht mehr die einzige Möglichkeit, Informationen zu erhalten. Viele vertikale Informationsdienste wie E-Commerce, soziale Netzwerke, Nachrichten usw. verfügen über eigene Suchmaschinen. Die Merkmale dieser Suchmaschinen sind: mittleres Datenvolumen, komplexes Geschäft und hohe Anforderungen an die Benutzererfahrung. Die Entwicklung dieser Suchmaschinen erfordert viel Engineering und Algorithmenunterstützung. kumo search
zielt darauf ab, ein sofort einsatzbereites Suchmaschinen-Framework bereitzustellen, mit dem Benutzer schnell ihre eigenen Suchmaschinen erstellen können. Auf diesem Framework können Benutzer über den AOT-Compiler im Projekt Geschäftslogik in python
schreiben. Das Framework generiert automatisch c++
Code und eine binäre dynamische Bibliothek, die dynamisch in der Suchmaschine aktualisiert wird. Dies ermöglicht eine schnelle Iteration von Suchmaschinen.
Seriennummer | Projektname | veranschaulichen | veranschaulichen |
---|---|---|---|
1 | Collie | Referenzieren Sie nur externe Header-Bibliotheken wie Jason, Toml usw. für eine einheitliche Verwaltung | |
2 | Turbo | Hash, Protokoll, Containerklasse, stringbezogene Vorgänge | |
3 | Melone | RPC-Kommunikation | |
4 | alkaid | Dateisystemkapselung, lokale Dateien, HDFS, S3 usw. | Dateisystem einheitliche API, zlib, lz4, zst einheitliche API |
5 | mizar | Basierend auf rocksdb, toplingdb-Speicher-Engine-Kern | Die Wisekey-Funktion muss noch entwickelt werden. Vorerst wird die offizielle Version von rocksdb verwendet. |
6 | Alioth Yuheng | Tabellenspeicher | In Entwicklung |
7 | megreztianquan | Lesen und Schreiben von Datensätzen | hdf5 cvs bin wurde fertiggestellt und die erweiterte C++API soll gekapselt werden |
8 | Phekda | Die Unified Vector Engine greift auf API UnifiedIndex zu, um die Schnittstelle zu vereinfachen | Unterstützt Snapshot und Filter-Plug-in |
9 | meraktianxuan | Umfassender Suchmaschinenkern | Zu entwickeln |
10 | dubhe Tianshu | NLP-Kernel | Zu entwickeln |
11 | Fackel | Hochdimensionale Tensorberechnung für GPU, CPU usw. | |
12 | theia | Basierend auf OpenGL-Grafiken und Bildanzeige ist der Server nicht verfügbar (kein Anzeigegerät). | |
13 | Zwerg | Jupiter-Protokoll-C++-Kernel | |
14 | Exodus | Herkules und andere Jupyter-Anwendungen | Beenden |
15 | Herkules | Python AOT-Compiler | |
16 | Karabiner | C++-Paketmanager, cmake-Generator | Beenden |
17 | Carbin-Vorlage | cmake-Vorlagenbibliothek | Beenden |
18 | Carbin-Rezepte | Carbin-Rezepte hängen von der benutzerdefinierten Konfiguration der Bibliothek ab | Beenden |
18 | hadar | Schlagen Sie den Kernel des Suchvorschlagsdienstes vor | Fast fertiggestellt, nicht Open Source für kommerzielle Nutzung |
19 | Neptun | ea Front-End-Service | In Entwicklung |
Seriennummer | Projektname | veranschaulichen | Zeitplan |
---|---|---|---|
1 | Sirius | EA-Metadatenserverdiensterkennung, globaler Uhrendienst, globaler Konfigurationsdienst, globaler ID-Dienst | Beenden |
2 | Polaris | Standalone-Service der Vector-Engine | Beenden |
3 | elnath | Umfassender eigenständiger Recherche- und Zitierdienst | In Entwicklung |
4 | vega | Vector Engine Database Cluster Edition | Vollständige kommerzielle Nutzung, aber nicht Open Source |
5 | Arcturus | Umfassende Suchmaschinen-Cluster-Version | In der Entwicklung, nicht Open Source für kommerzielle Nutzung |
6 | Pollux | Integrierte Engine-Business-Konsole | In der Entwicklung, nicht Open Source für kommerzielle Nutzung |
7 | capella | Liter-Sortierservice | In der Entwicklung, nicht Open Source für kommerzielle Nutzung |
8 | Aldebaran | Suchvorschlagsdienst-Cluster vorschlagen | In der Entwicklung, nicht Open Source für kommerzielle Nutzung |
9 | Nunki | NLP-Dienst | In der Entwicklung, nicht Open Source für kommerzielle Nutzung |
Die halbstündige Serie konzentriert sich auf den schnellen Aufbau von Anwendungsdiensten auf Unternehmensebene auf Basis EA
-Infrastruktur und konzentriert sich dabei auf praktische Abläufe, schnellen Start, schnelle Entwicklung, schnelle Bereitstellung und schnelle Iteration.
**In diesem Thema werden hauptsächlich die Grundkenntnisse von Suchmaschinen sowie die Entwicklung, Aktualisierung und Gestaltung der Sucharchitektur mit der Entwicklung der Suchtechnologie und des Suchgeschäfts sowie die technischen Prinzipien und die dahinter stehende Implementierung vorgestellt. **
EA
ist die Infrastruktur serverseitiger Anwendungen. EA
unterstützt derzeit centos
und ubuntu
-Betriebssysteme. Das mac
System befindet sich derzeit in der Entwicklung und wir werden unser Bestes geben, um mac
System zu unterstützen. Wir haben es jedoch noch nicht ausprobiert, um die Kompilierung und IDE-Entwicklung zu erleichtern. Einige nachfolgende Funktionen werden möglicherweise aus Kompatibilitätsgründen ausprobiert. Informationen zur grundlegenden Umgebungsbereitstellung finden Sie unter Installation und Verwendung
cicd
des EA
-Systems wird mit dem Carbin-Tool verwaltet. carbin
ist ein c++
Paketmanager, cmake
Generator und ein cicd
Tool. carbin
kann von Drittanbietern abhängige Bibliotheken herunterladen, ein cmake
Build-System generieren sowie Projekte kompilieren und bereitstellen. Informationen zur Verwendung von carbin
finden Sie in den Carbin-Dokumenten
Karabiner | conda | cmake | CPM | Conan | Bazel | |
---|---|---|---|---|---|---|
Nutzungskomplexität | einfach | Mitte | hart | Mitte | hart | hart |
Schwierigkeiten bei der Installation | Pip einfach | binär einfach | Na einfach | cmake | Pip einfach | binär hart |
Abhängigkeitsmuster | Quelle/Binär | binär | Quelle | Quelle | Quelle/Binär | Quelle |
Abhängigkeitsbaum | Unterstützung | Unterstützung | Unterstützung | Unterstützung | Unterstützung | Unterstützung |
lokaler Quellcode | Unterstützung | N / A | Unterstützung | Unterstützung | N / A | Unterstützung |
Kompatibilität | Gut | Mitte | Gut | Gut | Gut | arm |
Geschwindigkeit | Gut | Mitte | arm | arm | Gut | arm |
Conda ist ein gutes Verwaltungstool, da die Kompilierungsabhängigkeiten relativ komplex sind und die Kompilierungsoptionen häufig Probleme bereiten, sodass es nicht zum Kompilieren von C++-Projekten geeignet ist. Das mit cmake gelieferte Verwaltungstool eignet sich nicht für die Verwaltung großer Projekte. Jedes Mal, wenn Sie das Projekt neu kompilieren, kann es dazu führen, dass die abhängigen Bibliotheken erneut heruntergeladen werden und die Kompilierungszeit zu lang wird. CPM ist ein C++-Paketmanager. In der heimischen Netzwerkumgebung ist das Herunterladen abhängiger Bibliotheken ebenfalls langsam und für die Verwaltung großer Projekte nicht geeignet. Conan ist ein C++-Paketmanager, aber die Download-Geschwindigkeit der von Conan abhängigen Bibliotheken ist langsam und eignet sich nicht für die Verwaltung großer Projekte.
Gleichzeitig eignet sich Carbin auch sehr gut für die Verwaltung von C++-Projekten und kann schnell ein C++-Projektverwaltungssystem erstellen, das den Projektkompilierungsprozess, die Optionskonfiguration und die variablen Regeln für die Installation und den Export von EA
Systemprojekten vereinheitlicht kann Projekte und Pakete über die feste Regel find_package
Es ist auch für die Verwendung in jedem cmake
basierten Projekt geeignet.
Wenn Sie auf Docker-Basis entwickeln, bietet EA
die grundlegende Entwicklung jedes INF-Containers:
centos7-openssl11-python-310-gcc-9.3:
lijippy/ea_inf:c7_base_v1