I am using Sitecore 10.1 with SXA, I have a page that contains search results component and I have noticed that the query that is generated and run on SOLR is retrieving all the fields in the response. Is there a way to override this behavior and return only the fields that will be displayed in search results component?
There is no way to do that out of the box. You would need to override
Sitecore.XA.Foundation.Search.Services.SearchService in order to change the way how the query is generated. Right now we are using
Sitecore.XA.Foundation.Search.Models.ContentPage as a query return type. It contains a few SXA specific fields and inherits from the Sitecore
Sitecore.ContentSearch.SearchTypes.SearchResultItem class which contains a loooot of fields (as you notice it).
So technically it is possible but I strongly recommend not to do that as you will end up overriding a few classes while the Search Results component is using paging anyway (you are not getting all of the items and all of the fields at one time).