Apart from the technology involved, A user expects robustness and concurrency from the interface (where the search is initiated here). So to say, updating main page via web socket with new data sources is acceptable but trying to update the search result user already looked is not something desirable in this case since the user not necessarily have to turn back and look at the same page or place again without being aware of it.
Like stack exchange and many other sites also covering this issue as a feature, you might want to overcome this with a notice at the top of the page above. I don't have a chance to take a screenshot now (I'll do whenever I can) but if you stare a newly asked question for a while, you'll notice it whenever someone submits an answer before you do. It basically blurs a line with grey (I suppose), and notifies about some other one's answer also exists and asks you if you want to refresh the page (showing answer in this case) or not.
The implementation of this method may vary but, giving the user a
chance to realize that the search data has refreshed and if he/she
would like to access it would be the best solution here.
And for your last question, if you're in the main page you may prefer to do this method or not but if you're in the search results page, then you should ask for displaying the new search results, not others for sure. Showing sources other than search results doesn't make a sense but you should also refresh other data whenever user moves from the search page.
Edit:
I just could take a screenshot of an example situation below on stack overflow. You may ask for more if you need.