Sistema de motor de búsqueda
Un sistema de motor de búsqueda escalable que admite las capacidades de búsqueda de imágenes y de texto utilizando la similitud vectorial.

Búsqueda de imágenes

Búsqueda de texto
Arquitectura del sistema

Arquitectura del sistema
Características
Detalle técnico
Tubería de búsqueda de imágenes
Tubería de búsqueda de texto
Procesamiento y análisis de texto :
- Analizadores personalizados de ElasticSearch:
- Analizador de palabras clave con minúsculas y plegamiento ASCII
- Analizador NGRAM de borde para autocomplete (min_gram: 2, max_gram: 5)
- Analizador estándar para la búsqueda de texto completo
- Filtros de personajes y tokenización
- Soporte para el texto vietnamita
Enfoques de búsqueda :
Autocompletar (búsqueda-asi-tipo) :
- Tokenizer NGRAM Edge para coincidencia de prefijo
- Finalización personalizada Suggester
- Optimizado para sugerencias instantáneas
- Mínimo 2 caracteres para sugerencias
Búsqueda de texto completo :
- Consulta de múltiples partidos en todos los campos:
- Fuzzy coincidencia con fuzzidad automática
- Puntuación personalizada basada en métricas comerciales:
- Tasa de venta (porcentaje de descuento)
- Volumen de ventas (> 1000 bono de ventas)
- Normalización del precio del artículo
Optimización de búsqueda :
- Plantilla de puntuación personalizada utilizando scripts de elasticsearch
- Indexación por lotes para ingestión de datos eficientes
- Operaciones de búsqueda asíncrona
- Tamaño de resultados configurable
- Manejo de errores y registro
Características de ElasticSearch :
- Mapeaciones de índice personalizados
- Múltiples tipos de campo y analizadores
- Consultas de puntuación de función
- Puntuación basada en scripts
- Operaciones de indexación a granel
Pila de tecnología
Modelo
- NVIDIA TRITON INFERENCIA SERVER :
- Documentación del servidor Triton
- Versión de modelo y pruebas A/B
- Lotes dinámicos
- Ejecución del modelo concurrente
- Optimización de GPU con Tensorrt
- Tubería de conversión de formato de modelo:
- Pytorch → ONNX → Tensorrt
Infraestructura
Contenedorización :
- Construcciones de Docker Multi-Etess
- Imágenes de contenedores optimizadas
- Docker Compose for Development
Orquestación :
- Implementación de Kubernetes
- Gráficos de timón para la gestión de paquetes
- Cápsis horizontal autoscalado
- Gestión de recursos y escala
Monitoreo y registro :
- Métricas de Prometeo
- Paneles de grafana
- Rastreo distribuido
- Monitoreo del rendimiento
Empezando
- Clon el repositorio:
git clone https://github.com/vectornguyen76/search-engine-system.git
- Inicie los servicios utilizando Docker Compose:
- Acceder a los servicios:
- Búsqueda de imágenes ui: http: // localhost: 8501
- Text Search UI: http: // localhost: 8502
- Triton Server: http: // localhost: 8000
Desarrollo
Tubería CI/CD
Calidad del código
- Flake8 para el código Python Linting
- Escriba sugerencias y documentación
- Pruebas automatizadas en tuberías de CI/CD
- Proceso de revisión de código
Que contribuye
- Bifurca el repositorio
- Crea tu rama de características
- Comprende tus cambios
- Empujar a la rama
- Crear una nueva solicitud de extracción
Licencia
Este proyecto tiene licencia bajo la licencia MIT; consulte el archivo de licencia para obtener más detalles.