Buscador con Sugerencias

Una característica muy popular de los formularios de búsqueda modernos es ofrecer tips de búsqueda dinámicamente en base a lo que el usuario está tipeando. Desde la versión 11.2.70, Prontus ofrece también esta funcionalidad mediante una CGI, prontus_search_tips.cgi. Esta CGI reusa el índice del buscador para el listado de palabras a devolver.

+Uso
Detalles
  • La CGI soporta búsquedas desde un mínimo de 1 caracter. Normalmente, la gestión del largo del texto mínimo antes de buscar se hace en el gestor Javascript, antes de hacer la request.
  • Se devuelve una lista con el texto buscado como primer elemento y luego un máximo de 5 resultados.
  • La CGI genera un caché de búsquedas para optimizar la performance. Se guardan los resultados por 600 segundos antes de regenerarse.
Uso

La CGI recibe solicitudes GET o POST. En cada solicitud deben enviarse los siguientes parámetros:

  • search_prontus: el nombre del prontus en el cual se buscará. Esto permite la implementación en buscadores con multivistas.
  • search_texto: este parámetro contendrá el texto buscado. Puede ser una frase con más palabras, pero sólo se considerará la última al completar con sugerencias. Por ejemplo, buscar "partido chileno en" devolverá la frase con sugerencias para la palabra "en" solamente, como se detalla en el ejemplo debajo.

Los resultados se devuelven como una lista de frases en formato JSON. Siempre se devuelve como primer resultado la frase buscada, sin cambios. Por ejemplo, para la búsqueda mencionada arriba, el resultado devuelto sería:

["partido chileno en", "partido chileno encabeza", "partido chileno encanta", "partido chileno encarna", "partido chileno encamina"]

Ejemplo

Un ejemplo completo de llamada sería una request GET a la URL

http://< dominio >/cgi-bin/prontus_search_tips.cgi?search_prontus=prontus_develop&search_texto=p

El resultado devuelto sería la siguiente lista:

["p", "pablo", "pacientes", "pacto", "prontus", "prueba"]

En caso de error, por ejemplo por haberse superado el máximo de copias de la CGI en ejecución, el resultado será una lista vacía. Si el largo del texto buscado no supera el definido, se devolverá una lista con un solo valor: el texto buscado.

Típicamente, las implementaciones usan funciones escritas en Javascript para hacer consultas AJAX a los servicios que devuelven sugerencias. En este caso, se podría crear un gestor del evento onChange del campo de búsqueda que llamara a la CGI con los parámetros necesarios y gestionara los resultados. En la imagen que sigue se muestra un ejemplo de un buscador que devuelve más resultados al buscar desde un caracter:

Buscador con sugerencias