Ingeniería

Rastreo, código, búsqueda: Elastic Site Search y Elastic App Search

Elastic ofrece servicios de búsqueda administrada valiosos y efectivos. En este artículo, veremos dos de ellos: Elastic Site Search y Elastic App Search. Ambos comparten el mismo objetivo: proporcionar las herramientas para crear y refinar las experiencias valiosas y relevantes de búsqueda con el mínimo tiempo de implementación. A pesar de que son similares, los servicios se diferencian en cómo logran estos objetivos.

Para el final de este artículo, tendrá una idea sólida de qué solución es la que más le conviene.

Desafío: Búsqueda profunda

Ambos Elastic Site Search y Elastic App Search utilizan Elasticsearch, un motor de búsqueda RESTful, distribuido y de código abierto. ¡Y lo necesitan! La búsqueda es un problema desafiante y Elasticsearch es una herramienta ya comprobada que puede ayudar a corregir los puntos débiles más profundos.

Podemos sintetizar los desafíos de las búsquedas en tres aspectos fundamentales:

Ingesta. Tiene datos. Quiere que se puedan buscar. El acto de ingesta toma un objeto (una página web, una repuesta de un API de backend) y lo convierte en un documento que puede buscarse. Este proceso se conoce como indexación: tomar datos y traducirlos en una forma óptima para que el motor de búsqueda pueda procesarlos. ¿Cómo indexará sus datos? ¿Deberá hospedar la infraestructura? ¿Qué sucede si los datos están en Internet abierto al público? ¿Qué ocurre si están en una intranet privada?  

Lo que necesita más que nada es una ingesta simplificada, flexibilidad y mínima implementación

Entrega de resultados. Tu motor está lleno de documentos y puedes buscarlos. ¿Qué recibirá a cambio? Los documentos, sí. Pero, ¿cuáles, cuántos y cómo se verán? ¿Cómo se sentirá? ¿Y qué hay de la función de autocompletado? ¿Creará una experiencia predictiva que se adelante a sus usuarios? ¿Los resultados generarán valor?

Lo que necesita son resultados relevantes que lo ayuden a lograr sus objetivos empresariales, mejorar el retorno de la inversión y proporcionar una experiencia agradable para los usuarios.

Administración. Una vez que haya diseñado y desarrollado una experiencia de búsqueda, ¿cómo la administrará? Si requirió el tiempo del desarrollador para crearla, ¿cuánto más se necesitará para configurarla y mejorarla? ¿Las partes interesadas que son no técnicas podrán participar en la optimización en curso? ¿Cómo administrará el acceso? ¿Podrá plasmar la analítica e integrar la búsqueda en su proceso de analítica?

Lo que necesita es una búsqueda que funcione bien hoy, que sea útil e intuitiva para todas las partes interesadas y que se pueda mejorar y alterar con una fricción mínima.

Dos buenas soluciones: Peras y manzanas

Elastic App Search y Elastic Site Search pueden satisfacer los requisitos de búsquedas profundas en muchos casos de uso diferentes. Ya sea que tenga una plataforma de comercio electrónico, una base de conocimiento, una empresa de medios, una aplicación para juegos, una oferta de SaaS (Software as a Service) o una plataforma de uso mixto, cualquiera de las dos soluciones lo llevará a una experiencia de búsqueda de gran calidad.

Ambas soluciones tienen una administración completa, están bien documentadas, tienen acceso a soporte de clase mundial y cuentan con lo siguiente:

Pero, ¿cuál debo elegir? Al final, todo depende de cómo desee resolver mejor la ingesta, la entrega de resultados y la administración.

¿Desea que sus páginas web se escaneen e indexen automáticamente, usar soluciones o complementos innovadores, aprovechar un panel de control ordenado y funcional y aplicar puntos finales API de respaldo? Elastic Site Search es para usted.

¿O desea hilar la búsqueda más variada y profunda, contar con puntos finales de API en su código de aplicación y afinar la relevancia a través de un panel de control modernizado y accesible? Elastic App Search es la indicada.

Elastic Site Search: Rastrear todo

En el corazón de Elastic Site Search se encuentra el rastreador  Site Search Crawler. Site Search Crawler funciona como cualquier otro rastreador web. Google, DuckDuckGo, Bing; cada motor de búsqueda importante despacha un rastreador, un sistema sofisticado, para todas las páginas web disponibles públicamente. Los rastreadores analizan e indexan estas páginas web; recolectan métricas, capturan contenidos y crean documentos en el proceso.

Site Search Crawler es alojado y administrado por Elastic. Se ocupará de la ingesta por usted. Está automatizado, responde de forma inteligente a los errores y no requiere configuración constante. Agregue un dominio u opcionalmente conserve sus Meta tags, archivos Robots.txt, formatos RSS/Atom o Sitemap. Luego, siéntese a ver cómo sus páginas se traducen a documentos indexados que pueden buscarse.

Por ejemplo, considere que tiene una amplia base de conocimientos que es pública y está llena de artículos útiles. Al ingresar su dirección de sitio web, Site Search Crawler rastreará e indexará cada página web. Una vez que estén indexadas, las páginas se organizarán en campos en relación con un esquema. Ahora se pueden aplicar las capacidades de afinación de la relevancia de una característica como la de Weights (Importancia).

Puede seleccionar un conjunto de campos específicos y luego afinar el ”weight (importancia)” en cada uno. Por ejemplo, ¿qué pasaría si quisiéramos emparejar las búsquedas de usuarios en el título de un documento sin que el cuerpo de texto influya en nuestros resultados? ¿Y si quisiéramos favorecer los resultados más populares, los que han recibido más clics?

Tendríamos que seleccionar el título, el cuerpo y los campos de popularidad para luego ajustar el weight (importancia) en una escala de 1 a 10.

Mientras que la ingesta automática y las características eficientes son atractivas, ¿qué se puede decir de la creación de la experiencia de búsqueda? ¿Cómo es que Elastic Site Search me ayuda a introducir esta sofisticada potencia de indexación y el control de la relevancia afinada en mi sitio web? Las opciones Design and Customization (Diseño y Personalización) que presenta Elastic Site Search van desde simples soluciones innovadoras hasta experiencias de búsquedas dinámicas y completamente personalizadas.

Al instalar el código JavaScript de Site Search y crear un nuevo campo de búsqueda o alterar el campo existente, puede usar la innovadora superposición de Site Search para mostrar sus resultados de búsqueda.

¿Y qué hay del diseño personalizado? Elastic Site Search contiene un conjunto de API que lo ayudarán a hacer exactamente eso. Hay clientes que admiten Java, Node.js, Python y Ruby. Ofrecemos bibliotecas populares de JavaScript para búsquedas y autocompletado que puede usar como un punto de inicio para ayudarlo a crear experiencias personalizadas y creativas:

La característica más destacable de Elastic Site Search puede verse cuando el rastreador realiza el trabajo pesado. Necesita poco tiempo para arrancar, se puede afinar según sus gustos y puede confiar en que mantendrá los resultados actualizados. Las API y los complementos de Elastic Site Search son útiles para la complementación. Sin embargo, algunas características solo están disponibles dentro del panel de control y no tienen un punto final de API correspondiente.

Para un control programático completo sobre los puntos finales más profundos de la API, le presentamos Elastic App Search.

Elastic App Search: API-céntrico, fácil de usar

Elastic App Search está centrado en API. Existen clientes de confianza disponibles para Ruby, JavaScript, Java, Node.js y Phython. Elastic App Search no utiliza un rastreador.

El desarrollador que usa las API de Elastic App Search determinará cómo generar los datos de objeto que indexará y cómo aplicará todos los puntos finales de la API. La ingesta, la entrega de resultados y la implementación en general se manejan mediante programación. Ya sea que uno esté creando búsquedas en un panel de control interesante, una web compleja o una aplicación móvil, un juego o una tienda, si puede programarlo, puede hacer que sus objetos sean rastreables.

Todas las funcionalidades del panel de control se traducen a API robustas y refinadas en las que luego puede escribir el código de su aplicación. Por ejemplo, Elastic Site Search y Elastic App Search le permiten crear un conjunto de sinónimos. Los conjuntos de sinónimos tienen una utilidad excelente: los buscadores suelen usar vocabulario muy diferente. Para alguien, un coche puede ser un vehículo, o un auto, o un automóvil, etc.

En Elastic Site Search puede utilizar sinónimos a través del panel de control:

Puede hacer lo mismo en el panel de control de Elastic App Search...

... O puede hacer la solicitud en un punto final de API (bien documentado):

curl -X POST 'https://host-xxxxxx.api.swiftype.com/api/as/v1/engines/rent-a-car/synonyms' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \
-d '{
  "synonyms": ["car", "vehicle", "jalopy"]
}'

Las API de Elastic App Search van mucho más profundo. Considere cómo la creación de una plataforma de comercio electrónico puede consumir Analytics API suite. La búsqueda comienza con una expresión libre y los conocimientos analíticos que se obtienen de esta pueden ser profundos. Analytics Suite puede devolver la información de las consultas de los usuarios y revelar qué documentos recibieron clics dentro de un marco de tiempo ajustable.

curl -X POST 'https://host-xxxxxx.api.swiftype.com/api/as/v1/engines/sample-engine/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "filters": {
    "date": {
      "from": "2018-06-15T12:00:00+00:00",
      "to": "2018-06-19T00:00:00+00:00"
    }
  }
}'

Por ejemplo, ¿qué sucedería si un artículo que se vende en su tienda se convirtiera en un éxito de la noche a la mañana? De repente, las búsquedas y los clics en un documento conseguirían un aumento explosivo. Tiene un potencial de negocio increíble!

Puede escribir una función que consuma Analytics API para capturar los documentos más populares que se encontraron durante la búsqueda. Luego puede extender esa función para que estos documentos se publiquen automáticamente en una vista llamativa y prominente dentro de su página de inicio. Las búsquedas de usuarios revelan la demanda y las funciones automatizadas se optimizan para ello en tiempo real. Mientras que la analítica es profunda y útil, las capacidades de búsqueda son el punto fuerte de Elastic App Search.

Los campos de esquemas en un documento pueden tener uno de cuatro tipos de valores: texto, número, fecha y geolocalización. Elastic App Search tiene una funcionalidad de búsqueda profunda en los cuatro tipos. La geolocalización está ganando popularidad por una buena razón. Un individuo está en algún lado o se dirige a un lugar nuevo y quiere saber qué hay cerca.

Al consumir las coordenadas del usuario, puede escribir su ubicación geográfica en las consultas de búsqueda y aumentar la relevancia de los resultados basados en la proximidad.

Digamos que tenemos una aplicación móvil que clasifica restaurantes saludables en todo el mundo.

curl -X GET 'https://host-xxxxxx.api.swiftype.com/api/as/v1/engines/food-paradise/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer search-xxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "boosts": {
    "current_location": {
      "type": "proximity",
      "function": "linear",
      "center": "37.6213, -122.3790",
      "factor": 8
    }
  },
  "query": "sushi"
}'

Una búsqueda de sushi multiplicaría la puntuación de relevancia de un resultado por el factor proporcionado, dada su proximidad al centro. El centro se informa a través de los datos de ubicación que uno recibe del buscador. Esto le da a uno la oportunidad de entregar resultados que tienen en cuenta el espacio y que, por lo tanto, son altamente relevantes.

Un tercer caso posible solo con la profundidad de las API de Elastic App Search es el agrupamiento avanzado. Imagine una situación en la que ofrece documentación. A medida que cambia las versiones de producto, también cambiará y actualizará la versión de su documentación.

curl -X GET 'https://host-xxxx.api.swiftype.com/api/as/v1/engines/sample-engine/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer search-o5bk7qpaedd2xmcsavb1d8os' \
-d '{
  "query": "meta tags",
  "result_fields": {
    "url": {
      "raw": {}
    },
    "title": {
      "raw": {}
    },
    "description": {
      "raw": {}
    },
    "version": {
      "raw": {}
    }
  },
  "group": {
    "field": "url"
  }
}'

Si un usuario quisiera buscar una característica particular, ¿cómo juntaría las diferentes versiones de documentos en donde aparece la característica? Una consulta agrupada aseguraría que todas las páginas con versiones dispares para un mismo tema aparecerían como un solo resultado de búsqueda. Puede permitir que el usuario seleccione su versión deseada de aquel resultado particular, en lugar de hacer que analicen docenas de resultados que coincidan con las versiones diferentes.

Elastic App Search facilita las búsquedas para que sean más que un visitante que busca un documento relevante dentro de un campo. La búsqueda se convierte en una acción funcional: tiene sus documentos y el código puede buscar entre ellos de forma inteligente. Puede automatizar acciones según lo que desee encontrar sin la necesidad de ampliar demasiado el contexto de un campo de búsqueda.

A primera vista, puede parecer que Elastic App Search es un producto para el usuario «más técnico». Es verdad que las API van a complacer a cualquier desarrollador que quiera búsquedas relevantes y flexibles. Pero mientras que Elastic App Search deja la creación de interfaz y la indexación a cargo de usted, el panel de control y todas las comodidades en este son fáciles de usar para todos los niveles de experiencia técnica.

Resumen

Las soluciones de Elastic lo ayudan a abordar sus necesidades empresariales. Si quiere llevar una experiencia de búsqueda de calidad a sus páginas web o aplicaciones, no requiere más que Elastic Site Search o Elastic App Search, la que crea más conveniente.

Explore las páginas de las soluciones Elastic Site Search o Elastic App Search para obtener más información. Ambas le ofrecen una prueba gratuita de 14 días que no requiere tarjeta de crédito.