Elastic Search: Crear una experiencia de búsqueda semántica

Visión general


Incorpora tus datos

Crear una cuenta de Elastic Cloud

Comienza con una prueba de 14 días. Dirígete a cloud.elastic.co y crea una cuenta, luego sigue los pasos a continuación para conocer cómo iniciar tu primer stack de Elastic en cualquiera de las más de 50 regiones de todo el mundo en las que ofrecemos soporte.

Si haces clic en Edit settings (Editar configuración), puedes elegir un Proveedor Cloud, incluidos AWS, Microsoft Azure o Google Cloud. Una vez que selecciones tu Proveedor Cloud, podrás elegir la región relevante. A continuación, tienes la opción de elegir entre varios perfiles de hardware distintos para poder personalizar mejor el despliegue a fin de que se adapte a tus necesidades. Además, la versión más reciente de Elastic ya se preseleccionó por ti.

Mientras se está creando tu despliegue, se te dará un usuario y una contraseña. Asegúrate de copiar y descargar esto, lo necesitarás al instalar las integraciones.

Ingestar datos con el rastreador web de Elastic

Ahora que creaste tu despliegue, es momento de ingresar los datos en Elastic. Hagámoslo usando el rastreador web de Elastic. Primero, selecciona el mosaico Build a semantic search experience (Crear una experiencia de búsqueda semántica).

Luego, para configurar la búsqueda semántica, verás una página en la que puedes dar los primeros pasos en cualquiera de las opciones siguientes:

  • Elastic Learned Sparse Encoder
  • Búsqueda de vectores
  • Enriquecimiento de NLP

Todas estas capacidades, y más, son parte de Elasticsearch Relevance Engine (ESRE).

A los fines de esta guía, veremos cómo configurar la búsqueda semántica con ambas: Elastic Learned Sparse Encoder y Vector Search.

NOTA: Si estás dando los primeros pasos con la búsqueda semántica y deseas buscar texto, prueba primero la guía Elastic Learned Sparse Encoder. La guía Búsqueda de vectores kNN puede ser más adecuada para los usuarios que cumplen con estos criterios:

  • Tienen acceso a ciencia de datos o un conjunto de habilidades de ciencia de datos.
  • Determinaron que el modelo de búsqueda semántica integrado Elastic Learned Sparse Encoder no cubrirá sus casos de uso.
  • Tienen experiencia en la comparación de modelos de incrustación y, potencialmente, en el ajuste de modelos de ML.
  • Saben que la búsqueda kNN rápida puede requerir importantes recursos de RAM.

Si estás listo para comenzar, selecciona tu método de preferencia para desarrollar una aplicación impulsada por la búsqueda de AI.

En ambos métodos, comenzarás por seleccionar Create an index (Crear un índice). Desde aquí, puedes seleccionar el rastreador web para comenzar a ingestar los datos.

Para configurar el rastreador web, echa un vistazo a este recorrido guiado o sigue las instrucciones a continuación:

Ahora crea un índice. A los fines de esta guía, estamos ingestando blogs de todo elastic.co.

Web crawler search index

Una vez que asignas un nombre a tu índice, selecciona Create index (Crear índice). A continuación, usa Validate Domain (Validar dominio) y luego selecciona Add domain (Agregar dominio).

Luego de agregar el domino, en la parte inferior derecha seleccionarás Edit (Editar) para poder agregar un subdominio, si es necesario.

Add a domain to your indexDespués, seleccionarás Crawl rules (Reglas de rastreo) y agregarás las reglas de rastreo como se muestra abajo.*

Manage domains

*Dado que la página que deseas rastrear tendrá páginas enlazadas, debes agregar las reglas adicionales para no permitir dichos enlaces, ni cualquier otro.

 

A continuación, cuando selecciones tu campo más adelante, algunos campos exceden el conteo de 512 tokens, como body_content. Debes aprovechar Extraction rules (Reglas de extracción) para filtrar solo las partes relevantes de los blogs.

Cuando seleccionas Extraction rules (Reglas de extracción), haz clic en Add content extraction rule (Agregar regla de extracción de contenido).

Luego, en Rule description (Descripción de la regla), asígnale un nombre que ayude a los demás a entender qué datos extraerá esta regla. A los fines de esta guía, llamémosla "main" (principal).

Ahora selecciona Apply to all URLs (Aplicar a todas las URL), luego Add content fields (Agregar campos de contenido) y aparecerá un elemento flotante. Completa y selecciona los criterios siguientes cuando aparezca el elemento flotante.

  • Document field (Campo de documento):
    • Field name (Nombre de campo): main (principal)
  • Source (Fuente):
    • Extract content from (Extraer contenido de): HTML element (Elemento HTML)
    • CSS selector or XPath expression (Selector CSS o expresión XPath): main (principal)
  • Content (Contenido)
    • Use content from (Usar contenido de): Extracted Value (Valor extraído)
    • Store extracted content as (Almacenar contenido extraído como): A string (Una cadena)

Una vez que hayas completado estos criterios, haz clic en Save (Guardar) y luego en Save rule (Guardar regla).


Trabaja con Elasticsearch y ESRE

Ingestar y buscar en los datos con Elastic Learned Sparse Encoder

Si revisaste el criterio recomendado anterior para dar los primeros pasos con la búsqueda de vectores y es tu método de preferencia, navega a Search your data using kNN vector search (Buscar en los datos con búsqueda de vectores kNN) a la izquierda y sigue las instrucciones.

De lo contrario, si prefieres usar Elastic Learned Sparse Encoder, el modelo de búsqueda semántica listo para usar de Elastic, echa un vistazo a las instrucciones siguientes.

Para hacerlo, seleccionarás Pipelines y Unlock your custom pipelines (Liberar tus pipelines personalizados) seleccionando Copy and customize (Copiar y personalizar) en la parte superior. A continuación, en Machine Learning Inference Pipelines, (Pipelines de inferencia de machine learning), selecciona Deploy (Desplegar) para descargar el modelo e instalarlo en tu despliegue de Elasticsearch.

Una vez que se despliega, selecciona Start single-threaded (Iniciar subproceso único) y luego + Add inference Pipeline (+ Agregar pipeline de inferencia). A continuación, harás lo siguiente:

  1. Seleccionar un pipeline nuevo o existente
  2. Asignarle un nombre
  3. Por último, en el menú desplegable Select trained ML Model (Seleccionar modelo de ML entrenado), seleccionar ELSER Text Expansion (Expansión de texto ELSER) y hacer clic en Continue (Continuar)

Ahora, debes seleccionar los campos en los que aplicarás la expansión de texto ELSER. Selecciona "title" (título) y "main" (principal) como campos de origen, y luego Add (Agregar).

A continuación, haz clic en Continue (Continuar).

Omite el paso Test your pipeline results (Probar los resultados del pipeline) haciendo clic en Continue (Continuar), luego usa Create pipeline (Crear pipeline).

Ahora que creaste tu pipeline, selecciona Crawl (Rastrear) en la esquina superior derecha y luego Crawl all domains on this index (Rastrear todos los dominios en este índice).

Ahora es momento de buscar la información que necesitas. Hay dos maneras recomendadas de hacerlo:

  • Usando las herramientas de desarrollo
  • Aprovechando la funcionalidad Search Application (Aplicación de búsqueda) como un endpoint para tu aplicación

Cuándo usar cada una:

  • Si eres un desarrollador que está implementando la búsqueda (es decir, para tu aplicación web), debes usar las herramientas de desarrollo para probar y refinar los resultados de búsqueda desde tus datos de indexación.
  • Si deseas crear un endpoint de búsqueda al que puedas enviar solicitudes de búsqueda desde tu propia aplicación y en el que puedas devolver los resultados de búsqueda, debes usar la funcionalidad Search Application (Aplicación de búsqueda).

Echa un vistazo a estos dos breves videos a continuación para ver un recorrido rápido que te mostrará cómo aprovechar las herramientas de desarrollo y la funcionalidad Search Application (Aplicación de búsqueda). También puedes aprender cómo hacerlo explorando este recorrido guiado.


Pasos siguientes

Gracias por tomarte el tiempo de configurar la búsqueda semántica para tus datos con Elastic Cloud. A medida que inicias tu trayectoria con Elastic, debes comprender algunos componentes operativos, de seguridad y de datos que deberías gestionar como usuario al desplegar en todo el entorno.