| Application - Installation - Développement - Documentation - Deep Learning - FAQ - CONSEILS - EA Demi-heure - Sujets techniques |
kumo search
est un cadre de moteur de recherche de bout en bout qui prend en charge la récupération de texte intégral, l'index inversé, l'index direct, le tri, la mise en cache, la superposition d'index, le système d'intervention, la collecte de fonctionnalités, l'informatique hors ligne, le système de stockage et d'autres fonctions. kumo search
fonctionne sur la plate-forme EA
(Elastic automic infrastructure architecture) et prend en charge des fonctions telles que工程自动化
,服务治理
,实时数据
,服务降级与容灾
dans plusieurs salles informatiques et plusieurs clusters.
Avec le développement d’Internet, la recherche sur l’ensemble de l’Internet n’est plus le seul moyen d’obtenir des informations. De nombreux services d'information verticaux, tels que le commerce électronique, les réseaux sociaux, l'actualité, etc., disposent de leurs propres moteurs de recherche. Les caractéristiques de ces moteurs de recherche sont : un volume de données moyen, une activité complexe et des exigences élevées en matière d'expérience utilisateur. Le développement de ces moteurs de recherche nécessite beaucoup d’ingénierie et de support algorithmique. kumo search
vise à fournir un cadre de moteur de recherche prêt à l'emploi pour aider les utilisateurs à créer rapidement leurs propres moteurs de recherche. Sur ce framework, les utilisateurs peuvent écrire une logique métier en python
via le compilateur AOT du projet. Le framework générera automatiquement du code c++
et une bibliothèque dynamique binaire, qui sera mise à jour dynamiquement dans le moteur de recherche. Cela permet une itération rapide des moteurs de recherche.
numéro de série | Nom du projet | illustrer | illustrer |
---|---|---|---|
1 | colley | Référencez uniquement les bibliothèques d'en-tête externes telles que Jason, Toml, etc., pour une gestion unifiée | |
2 | turbo | hachage, journal, classe de conteneur, opérations liées aux chaînes | |
3 | melon | communication RPC | |
4 | alcaïde | Encapsulation du système de fichiers, fichiers locaux, hdfs, s3, etc. | API unifiée du système de fichiers, zlib, lz4, API unifiée zst |
5 | mizar | Basé sur rocksdb, noyau du moteur de stockage toplingdb | La fonction wisekey reste à développer. Pour le moment, la version officielle de rocksdb sera utilisée. |
6 | Alioth Yuheng | mémoire de table | En développement |
7 | mégreztianquan | Lecture et écriture d'ensembles de données | hdf5 cvs bin est terminé et l'api c++ avancée doit être encapsulée |
8 | Phekda | Le moteur vectoriel unifié accède à l'API UnifiedIndex pour simplifier l'interface | Prise en charge de l'instantané, plug-in de filtre |
9 | meraktianxuan | Noyau complet du moteur de recherche | A développer |
10 | dubhe Tianshu | noyau PNL | A développer |
11 | éclater | Calcul du tenseur haute dimension GPU, CPU, etc. | |
12 | Théia | Basé sur les graphiques opengl et l'affichage des images, le serveur n'est pas disponible (pas de périphérique d'affichage) | |
13 | nain | noyau C++ du protocole Jupyter | |
14 | exode | Hercules et autres applications Jupyter | Finition |
15 | Hercule | compilateur python aot | |
16 | carabine | gestionnaire de paquets c++, générateur cmake | Finition |
17 | modèle de carbine | bibliothèque de modèles cmake | Finition |
18 | recettes de glucides | les recettes carbin dépendent de la configuration personnalisée de la bibliothèque | Finition |
18 | Hadar | suggérer le noyau du service de suggestion de recherche | Presque terminé, pas open source pour un usage commercial |
19 | Neptune | un service frontal | En développement |
numéro de série | Nom du projet | illustrer | calendrier |
---|---|---|---|
1 | Sirius | Découverte du service de serveur de métadonnées EA, service d'horloge global, service de configuration global, service d'identification global | Finition |
2 | polaris | Service autonome de moteur vectoriel | Finition |
3 | Elnath | Service autonome complet de recherche et de citation | En développement |
4 | Véga | Édition du cluster de base de données du moteur vectoriel | Utilisation commerciale complète mais pas open source |
5 | arcturus | Version complète du cluster de moteurs de recherche | En développement, pas open source pour un usage commercial |
6 | pollux | Console professionnelle de moteur intégrée | En développement, pas open source pour un usage commercial |
7 | capella | service de tri des litres | En développement, pas open source pour un usage commercial |
8 | aldébaran | suggérer un cluster de services de suggestion de recherche | En développement, pas open source pour un usage commercial |
9 | nunki | service PNL | En développement, pas open source pour un usage commercial |
La série d'une demi-heure se concentre sur la création rapide de services d'applications au niveau de l'entreprise basés sur l'infrastructure EA
, en se concentrant sur les opérations pratiques, le démarrage rapide, le développement rapide, le déploiement rapide et l'itération rapide.
**Ce sujet présente principalement les connaissances de base des moteurs de recherche, ainsi que l'évolution, la mise à niveau et la conception de l'architecture de recherche avec le développement de la technologie de recherche et des activités de recherche, ainsi que les principes techniques et la mise en œuvre qui les sous-tendent. **
EA
est l'infrastructure des applications côté serveur. EA
prend actuellement en charge les systèmes d'exploitation centos
et ubuntu
. Le système mac
est actuellement en cours de développement et nous ferons de notre mieux pour prendre en charge mac
. Cependant, nous ne l'avons pas encore essayé. Pour faciliter la compilation et le développement de l'IDE, certaines fonctions ultérieures peuvent être essayées pour des raisons de compatibilité. Pour le déploiement de l'environnement de base, voir Installation et utilisation
cicd
du système EA
est géré à l’aide de l’outil carbin. carbin
est un gestionnaire de packages c++
, un générateur cmake
et un outil cicd
. carbin
peut télécharger des bibliothèques dépendantes tierces, générer un système de construction cmake
et compiler et déployer des projets. Pour l'utilisation du carbin
voir la documentation du carbin
carabine | conda | cmfaire | CPM | conan | bazel | |
---|---|---|---|---|---|---|
Complexité d'utilisation | facile | milieu | dur | milieu | dur | dur |
Difficulté d'installation | pip facile | binaire facile | NA facile | cmfaire | pip facile | binaire dur |
modèle de dépendance | source/binaire | binaire | source | source | source/binaire | source |
arbre de dépendance | soutien | soutien | soutien | soutien | soutien | soutien |
code source local | soutien | N / A | soutien | soutien | N / A | soutien |
compatibilité | bien | milieu | bien | bien | bien | pauvre |
vitesse | bien | milieu | pauvre | pauvre | bien | pauvre |
conda est un bon outil de gestion. Je n'ai pas choisi conda car ses dépendances de compilation sont relativement complexes et les options de compilation posent souvent des problèmes, ce qui le rend inadapté à la compilation de projets C++. L'outil de gestion fourni avec cmake n'est pas adapté à la gestion de grands projets. Chaque fois que vous recompilez le projet, cela peut entraîner le retéléchargement des bibliothèques dépendantes et le temps de compilation sera trop long. CPM est un gestionnaire de packages C++ De même, dans l'environnement réseau domestique, le téléchargement des bibliothèques dépendantes est lent et ne convient pas à la gestion de grands projets. Conan est un gestionnaire de packages C++, mais la vitesse de téléchargement des bibliothèques dépendantes de conan est lente et ne convient pas à la gestion de grands projets.
Dans le même temps, carbin est également très approprié pour la gestion de projets C++. Carbin peut générer rapidement un système cmake de gestion de projet C++, unifiant le processus de compilation de projet, la configuration des options et les règles variables pour l'installation et l'exportation après la compilation des projets du système EA
. peut trouver des projets et des packages via la règle fixe find_package
Il peut également être utilisé dans n'importe quel projet basé sur cmake
.
Si vous développez sur la base de Docker, EA
fournit le développement de base de chaque conteneur inf :
centos7-openssl11-python-310-gcc-9.3 :
lijippy/ea_inf:c7_base_v1