Because of the way Google tracks users (including non-logged-in users) it will give you different results according to what you have searched for in the past, and according to what links you clicked. You can test this by searching for the same terms from two different computers (ones that are widely-separated enough to have separate IP addresses).
A better search engine would either not do this, or do it in a way that is under the user’s control. DuckDuckGo, for example, offers “anonymous search” by default, so that it should yield identical results for everyone from the same search terms.
Another thing that DuckDuckGo claims is to truly support phrase searches. Google once upon a time would search for an exact phrase if the phrase was enclosed in quote marks. It still claims to do so, but in practice still matches on words in the phrase in addition to the full phrase. It also parses what you’ve written and gives results for what it thinks you meant. This makes it nearly useless for searching for technical information, which is at least half of my usage.
DuckDuckGo claims to support phrase searches without parsing, but I have established that it’s not always the case. I’ve contacted DuckDuckGo about this and they claim they are working on it. So, they are at least responsive to complaints, which Google famously is not.
I use DuckDuckGo frequently and it works well for me- for my purposes it’s basically a frontend for Google that removes anti-features. Another decent search engine to try is blekko. Their big deal is “spam-free search”. I don’t use them regularly, so I can’t really comment on how good the searches are.
If you want to, you can run your own search engine: YaCy is a program you can run on your computer which will hook up with other YaCy nodes and become part of a peer-to-peer distributed search network. You can also set it to crawl your own computer or your local network and provide results for them (to you, it doesn’t publish them to other nodes by default, thank goodness!) If you’re at all hackish, YaCy can be fun and useful. It’s a Java app, and quite memory hungry iirc. It caused a noticeable slowdown on my old dual-core Athlon64, so I stopped using it.