In a recursive query the client asks once, and the resolver steps down the name hierarchy one level at a time:
The resolver stores the answer for the TTL period, so the next identical query is served instantly.
A recursive query is contrasted with an iterative one. In an iterative query the server does not look up the answer itself but only returns a referral to the next server, and the client walks the hierarchy on its own.
In practice the client sends the resolver a recursive query, while the resolver talks to the root and authoritative servers iteratively. This split offloads work from the client and lets answers be cached centrally.