WITH matched AS MATERIALIZED ( SELECT source_dataset_key, source_uid, source_dataset_id, source_dataset_name, categoria_linea, categoria_canonica, categoria_slug, expediente, registro_sanitario, producto, titular, estado_registro, fecha_expedicion, fecha_vencimiento, modalidad, grupo, marca, principio_activo, forma_farmaceutica, presentacion_comercial, atc, rol_nombre, rol_tipo, ciudad_titular, pais_titular, fabricante, importador, vigencia FROM invima_api_catalog WHERE ( to_tsvector('spanish', COALESCE(search_text, '')) @@ websearch_to_tsquery('spanish', 'marcapasos') OR COALESCE(registro_sanitario, '') ILIKE '%marcapasos%' OR COALESCE(expediente, '') ILIKE '%marcapasos%' OR COALESCE(producto, '') ILIKE '%marcapasos%' OR COALESCE(categoria_canonica, '') ILIKE '%marcapasos%' OR COALESCE(categoria_linea, '') ILIKE '%marcapasos%' ) ) SELECT source_dataset_key, source_dataset_id, source_dataset_name, categoria_linea, categoria_canonica, categoria_slug, expediente, registro_sanitario, producto, titular, estado_registro, fecha_expedicion, fecha_vencimiento, modalidad, grupo, marca, principio_activo, forma_farmaceutica, presentacion_comercial, atc, rol_nombre, rol_tipo, ciudad_titular, pais_titular, fabricante, importador, vigencia FROM matched ORDER BY fecha_vencimiento DESC NULLS LAST, producto ASC NULLS LAST, source_dataset_key ASC, source_uid ASC LIMIT 25 OFFSET 0;