2

I would like my users to enter a full search value in a field like User ID, before clicking the Search button. This is because, a prefix, or a wildcard could bring in a whole lot of results, and in turn, slow the system down.

Any suggestions of patterns used to call out that a search fields requires the legit value before the user goes about searching would be greatly appreciated. Thanks in advance.

enter image description here

  • It sounds like what you want is a browsable index instead of a search; more or less by definition search engines need to be able to cope with partial input. (Users can't be expected to guess ahead of time exactly what a "legit" value in your database is). – Daniel Beck Aug 4 '18 at 18:11
  • Makes sense, David. thanks. But for something like a user ID field, just entering 145 would bring up hundreds of results, and hence, it becomes mostly a strenuous back end call if you will. That is what I am trying to prevent. – karthik rajendran Aug 4 '18 at 18:25
  • (Daniel, not David). TBH I'd question the robustness of a search engine that can't handle dealing with 'hundreds' of results -- it sounds like you have an implementation problem, not a UX problem. Partial-text searches are normal, expected user behavior, they're largely what search is for. Mitigate performance problems by improving your indexing, avoiding JOINs and live transforms, paginating results, etc., not by trying to change the user behavior that reveals the problem. – Daniel Beck Aug 4 '18 at 18:47
  • I'd echo @DanielBeck's comments about this being a technical problem and not one that should be solved by changing user behavior. I have seen search interfaces tweaked in order to reduce query volume or complexity - and it always has come with a sizable impact to usability. In your example, the user is selecting a car name. You may be able to improve the UX and the load on your search engine by creating a structured set of inputs (like cars.com) where the user first selects make, then model, from a set of pull down menus. – Tom Griffin Sep 4 '18 at 7:27
  • Where this DOES indeed become a UX issue is the situation where the user gets inundated with irrelevant results from a partial query, as would be the case if the user only provided four digits of an eight digit user ID field. In the case of something like a user ID, I'd argue this is more of a lookup and less of a search, and it's therefore acceptable to enforce a validation on the input (requiring the user to provide all digits in order to perform the search). – Tom Griffin Sep 4 '18 at 7:31
1

Seems like you can do something in between by providing an 'autocomplete' feature. That way the user doesn't necessarily have to complete the full search string, and you can still get the input you need to do the search and avoid any user input errors.

You can see some examples of this pattern here:

http://ui-patterns.com/patterns/Autocomplete

I think the difficulty with what you are asking the user to do is that defining what is the 'full' search string can be quite difficult. Sometimes the user only knows the abbreviated version of the word (or because it is the more commonly accepted term), and sometimes they just don't know how to spell or complete the string because they can't remember or are unable to look it up.

Whatever the reason, autocomplete is a standard pattern and widely accepted on most search engines (as suggestions), and the same goes for address input lookups where the user does not have to complete the entire search string.

The behaviour around autcomplete isn't trivial, but here are some previous questions on the topic that might be of interest (you can search for more):

0

Standard behavior is that user starts typing in and then waits for 1 - 2 seconds if the result or autocomplete will shown up. So after that time you can change your label "Car name" to "Please type whole phrase" or similiar.
It will be visible & clear enough for the user.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.