En Humano, las búsquedas globales (navbar, listas DataTables de contactos y clientes, etc.) pasan por la clase
App\Support\SearchNormalizer.
En PostgreSQL, si está disponible la extensión unaccent,
las coincidencias usan lower(unaccent(...))
para alinear mejor consultas sin acentos con texto almacenado con acentos.
Si la extensión no está instalada en esa base de datos, el código usa una ruta alternativa (normalización en PHP y comparaciones SQL con sustitución de caracteres / LIKE). La aplicación sigue funcionando; solo cambia la estrategia en el servidor de base de datos.
Conéctate a la misma base de datos que usa Laravel (DB_DATABASE) y ejecuta:
SELECT extname FROM pg_extension WHERE extname = 'unaccent';
Si el resultado está vacío, la extensión no está creada en esa base de datos.
Ejecuta (requiere permisos suficientes, normalmente superusuario o rol con derecho a crear extensiones):
CREATE EXTENSION IF NOT EXISTS unaccent;
CREATE EXTENSION no descarga paquetes del sistema operativo; usa los ficheros que ya trae la instalación de PostgreSQL (habitualmente el paquete postgresql-contrib o equivalente según versión).
Si al crear la extensión aparece un error indicando que falta el fichero de control o que la extensión no está disponible, instala contrib en el servidor, por ejemplo:
sudo apt install postgresql-contrib
El nombre exacto del paquete puede incluir la versión mayor de Postgres (p. ej. postgresql-16 en algunas distribuciones).
La aplicación cachea en memoria (por conexión) si unaccent está disponible. Después de ejecutar CREATE EXTENSION en producción, conviene reiniciar workers PHP (Forge, Supervisor, Horizon, contenedor, etc.) o el servicio web para que los procesos vuelvan a detectar la extensión sin usar una respuesta cacheada antigua.
No se usa la extensión unaccent de PostgreSQL. SearchNormalizer sigue aplicando normalización del término de búsqueda y condiciones SQL adaptadas al motor (por ejemplo cadena de replace en MySQL).