Show what results you have initially, but indicate that there are more results coming.
When you have more results, use some mechanism to indicate 'Adding more results in 3...2...1'.
You could also indicate what results are already fetched and which are coming so that the user knows what source of information is still being waited upon.
So for example, the following sequence:
Before any search results are found you show a list of sources.
If one source appears almost instantly then you show the results asap and dim the source in the waiting list. You don't want to delay showing the first results.
Now the user has something to do - ie look at the initial results.
Then when you have results ready or are preparing results in such a way that you know how long it will take then you start indicating via a progress meter that the results are being processed and about to be added.
This will allow the user to see that an update to the results is about to happen. They will learn after only one or two goes that the results will be updated when the progress meter reaches full circle...
Ideally it shouldn't take more than a couple of seconds otherwise user will get fed up with waiting. But also, it should take a minimum amount of time such that the user can see the results are about to be updated and for the last second they will not click/tap on an existing result, while they wait for the results to be updated.
Then the results will actually get updated, and although the results are sorted in order of relevance (?) the user can see which of the results are from the new source.
Finally, when all results have been fetched, the header changes to show more relevant information like number of results or whatever the user may be interested in.