Skip to main content
Jarvi ejecuta un motor de búsqueda de texto completo sobre tus datos. Los nombres, correos, números de teléfono, puestos, competencias y valores de campos personalizados están indexados, y _search consulta esos índices. Filtrar con _ilike "%término%" hace algo muy distinto: PostgreSQL recorre cada registro de tu espacio y lo compara con el patrón. En una base de producción, un solo _ilike sobre un apellido se midió en 2,4 segundos; la misma búsqueda a través del índice responde en unas decenas de milisegundos.
_ilike, _like, _nilike y _nlike se retirarán de la API pública el 31 de julio de 2027.En los endpoints REST no tienes que hacer nada: los filtros _ilike ya se traducen a una búsqueda indexada por ti, y la respuesta indica qué filtro sustituyó al tuyo. A través del endpoint /graphql la consulta es tuya y puede apuntar a cualquier tabla, así que te toca cambiarla.

Usar el operador

Un filtro toma el nombre de un destino de búsqueda y un término:
Combina varios con _and, _or y _not, como con cualquier otro filtro:

Sintaxis de consulta

El término es en sí mismo una consulta, no una simple cadena:

Palabras completas, no fragmentos

Los nombres se indexan palabra por palabra, desde el principio: Dupo encuentra Dupont, upont no. Lo mismo ocurre con los nombres de empresas y proyectos. Los correos y los teléfonos se indexan de otra forma y sí aceptan un fragmento en cualquier posición: un número se encuentra por sus últimas cifras, un correo por su dominio.

Los filtros, recurso por recurso

Todos los filtros siguientes se apoyan en un índice. Las demás columnas y relaciones de Hasura se siguen aceptando, pero no están optimizadas ni garantizadas.

Profiles

Companies

Projects

Estas listas se generan desde el propio motor de búsqueda, así que siempre reflejan lo que acepta la API. Las mismas definiciones se sirven como JSON Schema en GET /openapi, bajo ProfilesFilters, CompaniesFilters y ProjectsFilters.

Ordenar

El parámetro orderBy de cada endpoint REST asocia un campo y un sentido:
Los campos que acepta un recurso están listados en la documentación del propio parámetro, en la página del endpoint. Ordenar por otra cosa vuelve al orden por defecto en lugar de fallar.

Buscar por GraphQL

La query search devuelve identificadores y un total, que luego cargas en una segunda llamada. Ese reparto en dos pasos es lo que mantiene rápida una búsqueda, sea cual sea el tamaño de las fichas:
resource es profiles, companies o projects. filters toma el mismo objeto que el parámetro where de REST.

Dejar atrás _ilike

Un identificador o una URL nunca es una búsqueda: usa _eq, que pasa por su propio índice.
¿Te falta algo, o no encuentras un filtro que esperabas? Escríbenos: la lista anterior la dirige el motor, añadirle un filtro es un cambio pequeño.