Thanks all for sharing this feedback. I will try to explain why things work as they do, and also how we are planning to improve that.
Before R80, the SmartDashboard loaded all DB objects into the client memory upon login. When you searched for an object, it scanned the entire list, looking for your sub-string. This worked reasonably well in most environments, but sometimes was slow on huge DBs.
In R80.x, we have all our objects in a modern DB and strive to avoid loading everything into memory. Also, we have an indexing engine (Solr) that maintains an index of all the "words" in the various objects in the DB. When you are searching in Object Explorer or a picker, we look for objects with words that begin with your sub-string. This catches object names that begin with your word, but also examples like searching "Server" to find "Web Server". Although "Server" appears in the middle of the value, our indexing engine understands that it's a separate word that should be indexed (because of the space character). The searching is done using the index in order to return results quickly and to avoid loading the server by a full scan.
Following feedback, we understand that this may be frustrating (especially with examples like "WebServer").
What are we doing to improve?
In the upcoming R80.40 we will add two new behaviors:
1) You will be able to prefix your searches with '*' in order to force a full search, for example "*Server". This will be less efficient, but will find everything you are looking for (like in R77.x).
2) We are modifying the indexing tokenization algorithm to take into account changes in case. This means that words like "WebServer" will be considered two words => "Web" and "Server", due to the capital 'S', even without using a space character. Hopefully, this will catch most searches efficiently, without the need to use '*'.
Let me know if you think this will be useful.