Elegir la solución de búsqueda adecuada
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Explicar cuándo crear una solución de búsqueda personalizada.
- Describir las diferencias entre SOSL y SOQL.
- Identificar los protocolos API que están disponibles para la búsqueda.
Realizar búsquedas con el estilo propio de Salesforce
¿Sabe cuál es la función número uno y más usada de Salesforce? Si ha respondido que es la búsqueda, ¡ha acertado! La búsqueda es cómo esperan los usuarios encontrar un único registro entre otros miles de datos.
En este módulo de Trailhead, va a adquirir algunas nociones del funcionamiento de la búsqueda en Salesforce y conocimientos para determinar si una solución de búsqueda personalizada es adecuada en su caso. Además, aprenderá a crear rápidamente (o volver a crear) una solución personalizada mediante la API de Salesforce para algunos casos de uso frecuentes. Por último, aprenderá a optimizar las consultas de búsqueda para obtener resultados más específicos y relevantes. En resumen, al final tendrá una excelente base de conocimientos sobre la búsqueda y cómo esta función puede ayudar a los usuarios a ser más productivos.
Para empezar, vamos a analizar cómo funciona realmente la búsqueda en su conjunto.
Todos los registros se almacenan como campos de datos en la base de datos de la organización. Cuando actualiza o crea un registro, el motor de búsqueda se pone en funcionamiento, hace una copia de los datos y desglosa el contenido en elementos de menor tamaño llamados tokens. Almacenamos estos tokens en el índice de búsqueda junto con un vínculo al registro original.
Desde la perspectiva del usuario, el proceso de búsqueda es similar a la creación de un registro. Cuando un usuario escribe un término en el campo de búsqueda (1), el motor de búsqueda desglosa el término de búsqueda en forma de tokens (2). Además, establece la coincidencia de estos tokens con la información de los registros almacenada en el índice de búsqueda (3), clasifica los registros asociados según su relevancia (4) y devuelve los resultados a los que el usuario tiene acceso (5).
Vamos a dedicar un momento a examinar el índice de búsqueda. ¿Por qué todo ese complejo proceso de generación de tokens cuando podríamos buscar en la base de datos de la organización? La verdadera razón es que el índice de búsqueda es superinteligente y sabe qué resultados devolver al usuario.
El índice de búsqueda y los tokens permiten que el motor de búsqueda aplique funciones avanzadas, como la corrección ortográfica, los apodos, la lematización y los grupos de sinónimos. Todo esto significa que podemos presentar registros que incluyan variaciones de un término de búsqueda del usuario para ampliar la red de resultados (además, en caso de que se lo esté preguntando, la lematización no tiene nada que ver con la creación de lemas difusos; está relacionada con la identificación y la devolución de variantes del término de búsqueda, como agregar, adición y agregado en los resultados de búsqueda).
El índice de búsqueda ofrece también la posibilidad de incluir clasificaciones según la relevancia en el conjunto. Así es cómo la búsqueda permite encontrar y clasificar los registros que buscan los usuarios. ¿Qué elementos afectan a la búsqueda? Elementos como la frecuencia, el orden y la exclusividad del término de búsqueda, la actividad en los registros, los permisos de acceso y un puñado de algunos otros factores.
Hagamos una comparación. Una búsqueda en la base de datos de zapatillas de conejitos solamente devuelve registros que coinciden exactamente con “zapatillas de conejitos”. Sin embargo, con el índice de búsqueda, obtiene sin duda alguna registros con zapatillas de conejitos. Pero los usuarios también pueden ver más registros con términos similares, como zapatillas de conejos o zapatilla de conejo (singular). Asimismo, supongamos que ha introducido zapatillas conejo o que ha escrito “conejito” de forma incorrecta (suele ocurrir). A pesar de la coincidencia y la ortografía deficientes, obtendrá resultados relevantes. Además, todos los resultados se ordenan según lo que sea relevante para el usuario específico que ha realizado la búsqueda.
Ahora, es posible que esté pensando lo siguiente. La función de búsqueda de uso inmediato de Salesforce parece una herramienta extraordinaria (y sin duda lo es) y funciona para la mayoría de los casos de uso. Por lo tanto, ¿cuándo podría necesitar una solución personalizada?
En general, necesita una solución de búsqueda personalizada cuando su organización usa una interfaz de usuario personalizada en lugar de la interfaz de usuario de Salesforce estándar. Algunos ejemplos de interfaces de usuario desarrolladas internamente son una base de conocimientos específica para clientes o un sitio de datos de productos interno para sus empleados. En este caso, permítanos hacer una pequeña advertencia. La creación de una interfaz de usuario personalizada no es apta para todos y requiere trabajo adicional. La buena noticia es que la búsqueda personalizada le permite aprovechar las ventajas de algunas de las funciones avanzadas de la búsqueda de Salesforce. Por consiguiente, si su compañía decide crear una interfaz de usuario personalizada y necesita una solución de búsqueda personalizada, este es el módulo perfecto para usted.
Una vez descritos los inconvenientes y las ventajas de la búsqueda de Salesforce, nos centraremos en las API que le permiten buscar registros en su solución de búsqueda personalizada.
Establecer conexiones para la búsqueda mediante las API
Tenga en cuenta que hay dos API principales. Hablaremos de dos API adicionales un poco más adelante.
- Salesforce Object Query Language (SOQL)
- Salesforce Object Search Language (SOSL)
Tanto SOQL como SOSL son consultas de texto con formato en una API determinada. No obstante, aquí terminan las similitudes. Una consulta SOQL es el equivalente de una declaración SELECT (SQL) y permite la búsqueda en la base de datos de la organización. Por otra parte, SOSL es un método programático para la realización de una búsqueda basada en texto en el índice de búsqueda. SOSL usa todas las increíbles funciones del índice de búsqueda mencionadas anteriormente.
Además, SOQL y SOSL tienen sintaxis diferentes. Hemos incluido una serie de vínculos a documentos para desarrolladores en la sección de recursos para que pueda consultarlos. Hay algunas indicaciones sobre cuándo usar SOQL o SOSL.
Use SOQL cuando sepa en qué objetos o campos residen los datos y desee hacer lo siguiente:
- Recuperar datos de un solo objeto o de múltiples objetos que están relacionados entre sí.
- Realizar un recuento del número de registros que cumplen los criterios especificados.
- Ordenar los resultados como parte de la consulta.
- Recuperar datos de campos de número, fecha o casilla.
Use SOSL cuando no sepa en qué objeto o campo residen los datos y desee hacer lo siguiente:
- Recuperar datos para un término específico que sabe que existe en un campo. Dado que SOSL puede convertir en tokens varios términos de un campo y crear un índice de búsqueda a partir de esto, las búsquedas SOSL son más rápidas y pueden devolver más resultados relevantes.
- Recuperar múltiples objetos y campos de forma eficiente con independencia de que los objetos estén relacionados o no entre sí.
- Recuperar datos para una división concreta de una organización mediante la función de divisiones y buscarlos de la forma más eficiente posible.
Veamos otros dos tipos de API adicionales.
En primer lugar, la API de registros sugeridos. Es posible que ya conozca los registros sugeridos por sus alias: sugerencia automática, resultados instantáneos o escritura anticipada. Es probable que también esté familiarizado con su comportamiento. Supongamos que usa un sitio web para la venta de zapatillas deportivas sofisticadas. Se usa una solución de búsqueda de Salesforce personalizada para la base de conocimientos con el fin de animar a una comunidad de corredores. Quiere saber qué zapatillas debería comprar para una carrera por la montaña. Empieza a escribir “carrera por montaña” en la barra de búsqueda y se muestran opciones de artículos que incluyen los términos de búsqueda en el título.
¡El cuadro de búsqueda sabe exactamente lo que desea leer!
Los métodos REST de búsqueda de registros sugeridos y búsqueda de artículos sugeridos están a su disposición para que sus usuarios también puedan disfrutar de ellos de inmediato. Proporcionaremos más información sobre cómo usar estos métodos más adelante.
Hemos explicado detenidamente cómo buscar registros en Salesforce. Pero, ¿qué ocurre si tiene registros almacenados fuera de Salesforce a los que acceden los usuarios para sus trabajos? Pues bien, también tenemos una solución para esto: la búsqueda federada de Salesforce. Es un nuevo método para que los usuarios puedan buscar elementos almacenados fuera de Salesforce. Y lo mejor es que todo el proceso sigue teniendo lugar en Salesforce Classic, Salesforce Console o Lightning Experience.
La función de búsqueda federada de Salesforce le permite convertir el cuadro de búsqueda global en un motor de búsqueda externo. Una vez que se ha configurado la búsqueda federada, transferimos la consulta del usuario al motor externo, el cual busca en las fuentes externas. Los resultados se devuelven exactamente en los resultados de búsqueda de Salesforce. Para conseguirlo, usamos el conector de búsqueda federada de Salesforce. Este conector se crea mediante la especificación OpenSearch para que pueda conectar cualquier motor de búsqueda que cumpla el estándar del sector.
Es importante saber que la búsqueda federada de Salesforce no usa el índice de búsqueda de Salesforce, lo que significa que no se aplican todas esas excelentes funciones avanzadas de Salesforce. En este caso, los resultados se devuelven de acuerdo con lo establecido por el proveedor de búsqueda externo, el cual es también muy avanzado.
A continuación, veamos cómo usar los protocolos para enviar consultas SOSL y SOQL.
Enviar consultas con protocolos
Puede escribir todas las maravillosas consultas de búsqueda que desee. Sin embargo, esto no servirá de nada a menos que use un protocolo API, como REST, SOAP o Apex, para enviar las consultas realmente.
Recuerde que algunos protocolos se llevan mejor con algunas API que con otras. En general, nos referimos a consultas para SOQL y a búsquedas para SOSL.
- Query (REST) and query() (SOAP). Se ejecuta una consulta SOQL en el objeto especificado y se devuelven datos que coinciden con los criterios especificados.
- Search (REST) and search() (SOAP). Se ejecuta una búsqueda SOSL de una cadena de texto en los datos de su organización.
Hay también recursos adicionales disponibles para realizar otras tareas de búsqueda comunes, como los registros de sugerencia automática, los artículos y las consultas. Y si prefiere prescindir de SOSL y SOQL, considere la posibilidad de usar la búsqueda parametrizada en REST. En lugar de usar una cadena de búsqueda en la URL, debe usar parámetros (de ahí el nombre) en la URL.
En el caso de Apex, puede usar SOQL o SOSL sobre la marcha si incluye la declaración entre corchetes. Puede usar también una clase de búsqueda para realizar consultas SOSL dinámicas y un espacio de nombres de búsqueda para obtener resultados de búsqueda y resultados de sugerencias.
Hemos incluido una práctica lista en la sección de recursos de esta unidad. Además, describiremos cómo usar los protocolos en la siguiente unidad para que pueda empezar. No se olvide de leer los documentos para desarrolladores para revisar toda la información y los ejemplos.
Recursos
- Referencia de SOQL y SOSL
- Guía del desarrollador de la API de REST
- Guía del desarrollador de la API de SOAP
- Guía del desarrollador de Apex
- Ayuda de Salesforce
- Federated Search Developer Guide