What is the difference between _source and fields? When to use _source vs fields in queries?

I am reading the docs, but I am confused and do not think I understand what these mean. I need to get a specific set of key:value pairs that are an exact match in the specified query.

Do I use _source or fields or something else?

Is this related to Format Output of ElasticSearch?