Aplicación - Instalación - Desarrollo - Documentación - Aprendizaje profundo - Preguntas frecuentes - CONSEJOS - Media hora de EA - Temas técnicos |
kumo search
es un marco de motor de búsqueda de un extremo a otro que admite la recuperación de texto completo, índice invertido, índice directo, clasificación, almacenamiento en caché, capas de índice, sistema de intervención, recopilación de funciones, computación fuera de línea, sistema de almacenamiento y otras funciones. kumo search
se ejecuta en la plataforma EA
(Arquitectura de infraestructura automática elástica) y admite funciones como工程自动化
,服务治理
,实时数据
,服务降级与容灾
en múltiples salas de computadoras y múltiples clústeres.
Con el desarrollo de Internet, buscar en todo Internet ya no es la única forma de obtener información. Muchos servicios verticales de información, como el comercio electrónico, las redes sociales, las noticias, etc., cuentan con sus propios motores de búsqueda. Las características de estos motores de búsqueda son: volumen de datos medio, negocios complejos y altos requisitos de experiencia de usuario. El desarrollo de estos motores de búsqueda requiere mucha ingeniería y soporte de algoritmos. kumo search
tiene como objetivo proporcionar un marco de motor de búsqueda listo para usar para ayudar a los usuarios a crear rápidamente sus propios motores de búsqueda. En este marco, los usuarios pueden escribir lógica empresarial en python
a través del compilador AOT en el proyecto. El marco generará automáticamente código c++
y una biblioteca dinámica binaria, que se actualizará dinámicamente en el motor de búsqueda. Esto permite una rápida iteración de los motores de búsqueda.
número de serie | Nombre del proyecto | ilustrar | ilustrar |
---|---|---|---|
1 | collie | Haga referencia a bibliotecas de encabezados externos únicamente, como jason, toml, etc., para una administración unificada | |
2 | turbo | hash, registro, clase de contenedor, operaciones relacionadas con cadenas | |
3 | melón | comunicación rpc | |
4 | alcaide | Encapsulación de sistemas de archivos, archivos locales, hdfs, s3, etc. | API unificada del sistema de archivos, zlib, lz4, API unificada zst |
5 | mizar | Basado en rocksdb, núcleo del motor de almacenamiento toplingdb | La función Wisekey aún no se ha desarrollado. Por el momento, se utilizará la versión oficial de rocksdb. |
6 | alioth yuheng | memoria de mesa | En desarrollo |
7 | megreztianquan | Lectura y escritura de conjuntos de datos. | hdf5 cvs bin se ha completado y se encapsulará la API avanzada de C++ |
8 | phekda | El motor vectorial unificado accede a la API UnifiedIndex para simplificar la interfaz | Instantánea de soporte, complemento de filtro |
9 | meraktianxuan | Núcleo integral del motor de búsqueda | Para ser desarrollado |
10 | Dubhe Tianshu | núcleo de PNL | Para ser desarrollado |
11 | llamarada | GPU, cálculo de tensor de alta dimensión de CPU, etc. | |
12 | theia | Basado en gráficos opengl y visualización de imágenes, el servidor no está disponible (sin dispositivo de visualización) | |
13 | enano | protocolo jupyter núcleo c++ | |
14 | éxodo | Hércules y otras aplicaciones de Jupyter. | Finalizar |
15 | Hércules | compilador de Python | |
16 | carabina | administrador de paquetes c ++, generador cmake | Finalizar |
17 | plantilla-carbina | biblioteca de plantillas cmake | Finalizar |
18 | recetas-de-carbina | Las recetas de Carbin dependen de la configuración personalizada de la biblioteca. | Finalizar |
18 | hadar | sugerir núcleo de servicio de sugerencias de búsqueda | Casi terminado, no es de código abierto para uso comercial. |
19 | Neptuno | cada servicio front-end | En desarrollo |
número de serie | Nombre del proyecto | ilustrar | cronograma |
---|---|---|---|
1 | Sirio | Descubrimiento del servicio del servidor de metadatos de EA, servicio de reloj global, servicio de configuración global, servicio de identificación global | Finalizar |
2 | estrella polar | Servicio independiente de motor vectorial | Finalizar |
3 | elnath | Servicio integral de búsqueda y citación independiente | En desarrollo |
4 | vega | Edición de clúster de base de datos de Vector Engine | Uso comercial completo pero no de código abierto. |
5 | arcturus | Versión integral del clúster del motor de búsqueda | En desarrollo, no es de código abierto para uso comercial. |
6 | Pólux | Consola empresarial de motor integrada | En desarrollo, no es de código abierto para uso comercial. |
7 | capella | servicio de clasificación de litros | En desarrollo, no es de código abierto para uso comercial. |
8 | aldebarán | sugerir grupo de servicios de sugerencias de búsqueda | En desarrollo, no es de código abierto para uso comercial. |
9 | nunki | servicio de pnl | En desarrollo, no es de código abierto para uso comercial. |
La serie de media hora se centra en la creación rápida de servicios de aplicaciones de nivel empresarial basados en la infraestructura EA
, centrándose en operaciones prácticas, inicio rápido, desarrollo rápido, implementación rápida e iteración rápida.
**Este tema presenta principalmente los conocimientos básicos de los motores de búsqueda, así como la evolución, actualización y diseño de la arquitectura de búsqueda con el desarrollo de la tecnología de búsqueda y el negocio de búsqueda, así como los principios técnicos y la implementación detrás de esto. **
EA
es la infraestructura de aplicaciones del lado del servidor. EA
actualmente admite los sistemas operativos centos
y ubuntu
. El sistema mac
está actualmente en desarrollo y haremos todo lo posible para admitir mac
. Sin embargo, aún no lo hemos probado. Para facilitar la compilación y el desarrollo de IDE, se pueden probar algunas funciones posteriores para comprobar la compatibilidad. Para la implementación del entorno básico, consulte Instalación y uso.
cicd
del sistema EA
se gestiona mediante la herramienta carbin. carbin
es un administrador de paquetes c++
, un generador cmake
y una herramienta cicd
. carbin
puede descargar bibliotecas dependientes de terceros, generar un sistema de compilación cmake
y compilar e implementar proyectos. Para el uso de carbin
consulte los documentos de carabina.
carabina | conda | cmake | CPM | conan | bazel | |
---|---|---|---|---|---|---|
Complejidad de uso | fácil | medio | duro | medio | duro | duro |
Dificultad de instalación | pipa fácil | binario fácil | NA fácil | cmake | pipa fácil | binario duro |
patrón de dependencia | fuente/binario | binario | fuente | fuente | fuente/binario | fuente |
árbol de dependencia | apoyo | apoyo | apoyo | apoyo | apoyo | apoyo |
código fuente local | apoyo | N / A | apoyo | apoyo | N / A | apoyo |
compatibilidad | bien | medio | bien | bien | bien | pobre |
velocidad | bien | medio | pobre | pobre | bien | pobre |
conda es una buena herramienta de administración. No elegí conda porque sus dependencias de compilación son relativamente complejas y las opciones de compilación a menudo causan problemas, lo que la hace no adecuada para compilar proyectos de C++. La herramienta de administración que viene con cmake no es adecuada para la administración de proyectos grandes. Cada vez que vuelve a compilar el proyecto, las bibliotecas dependientes pueden volver a descargarse y el tiempo de compilación será demasiado largo. CPM es un administrador de paquetes C++, de manera similar, en el entorno de red doméstica, la descarga de bibliotecas dependientes es lenta y no es adecuada para la gestión de proyectos grandes. Conan es un administrador de paquetes C++, pero la velocidad de descarga de las bibliotecas dependientes de Conan es lenta y no es adecuada para la gestión de proyectos grandes.
Al mismo tiempo, Carbin también es muy adecuado para la gestión de proyectos C ++. Carbin puede generar rápidamente un sistema cmake de gestión de proyectos C ++, unificando el proceso de compilación del proyecto, la configuración de opciones y las reglas variables para la instalación y exportación del proyecto del sistema EA
. Puede encontrar proyectos y paquetes a través de la regla fija find_package
Objeto de proyecto. También es adecuado para usar en cualquier proyecto basado en cmake
.
Si desarrolla basándose en Docker, EA
proporciona el desarrollo básico del contenedor EA INF:
centos7-openssl11-python-310-gcc-9.3:
lijippy/ea_inf:c7_base_v1