5

I've joined you especially for this question :-)

Our web-based system has a search for person names that is heavily used - so heavily that we have run into performance issues. The search uses jQuery UI autocomplete to get results from a database, and the performance issue stems from very short queries: users have grown accustomed to a responsive mechanism that can be incrementally refined, and start with 2-3 characters and type more, if necessary. The other factor is users typing slower than the 0.3s delay.

In response to this increasing bottleneck, we are increasing the delay to 1s and the minimum characters to 5. My fear is that users accustomed to the old way will think the search is broken. How should we convey the instruction of five characters?

  • hint text below the search field (would not fit well into design)
  • hint text in the search field
  • upon focusing the field, display five signs that vanish as the user types ("....." - >" fo..." -> "foob." - > "foobar")

Thanks in advance!

7
  • Perhaps transition the change gradually, over a few weeks?
    – Erics
    Commented Feb 1, 2014 at 17:03
  • 1
    What is the reason for displaying auto-completion results for very short inputs to lead to performance problems? Is it that user are accustomed to wait for completions after every character they type, which results in a lot of queries, or that short inputs are harder to handle, because they produce a lot more results? Maybe the database queries, or whatever is used to generate the result, can be optimized by e.g. Only returning the first 20 or so results. This would automatically motivate the user to enter more characters to begin with. Commented Feb 1, 2014 at 21:33
  • I'm not sure you are asking the best question. Is there any way that you can filter the pool being searched? e.g. eMail programs will start by listing users that the user has most recently conversed with. This is a small search pool and provides great results even with a single character entered. Widen pool when have more characters entered. Also why not A/B test a 0.4s and 0.5 delay before auto-complete? Additionally computers can search incredibly fast - is the company making a UI band aid for a technical deficiency?
    – Jason A.
    Commented Feb 1, 2014 at 23:54
  • @Feuermurmel, the reason is more results. A client has usually 10-20.000 persons registered, and something generic like "Ma" returns loads of results. We are in Brazil, so "Ma" will return very popular names such as Maria and Marcos. We cannot limit the pool at first, because there is no criterion such as "recently contacted". The fact that the search results are names makes it hard to limit the result to a certain number of names. I've seen people not giving their full name and our clients using whatever info they got to sift through large results, although that is not the typical use case.
    – PeerBr
    Commented Feb 2, 2014 at 4:43
  • @Jayfang, yes, it is a band aid for database overload. The search is more sophisticated than that, you can type in several types of numbers (like social security or birthdays), although 95% will be name queries. Testing the delay is a good idea, as 1000ms is as arbitrary as the default of 300ms.
    – PeerBr
    Commented Feb 2, 2014 at 4:47

2 Answers 2

4

My idea is to present the information about minimum characters required in the autosuggest/autocomplete box. Like this:

mockup

download bmml source – Wireframes created with Balsamiq Mockups

(the "X characters to go" should only appear after a second of waiting with less that 5 characters typed into the inupt)

3
  • What a great idea, I didn't even think of that one. Hide the complexity and show only when needed, and then the hint already introduces the space where the user expects the solution to appear...
    – PeerBr
    Commented Feb 1, 2014 at 22:09
  • Don't forget to mark the answer as correct ;-)! Commented Feb 2, 2014 at 1:22
  • +1 Marking an answer is "accepting an answer", it does not imply that it is correct. For more information see Accepted answer Commented Feb 2, 2014 at 10:39
1

mockup

download bmml source – Wireframes created with Balsamiq Mockups

  1. create an interface which only works if the user has entered valid info - e.g. they can only submit data if correctly entered
  2. use colour to help them form an association with what's right and wrong (Warning: this could be culturally dependent)
  3. provide feedback as to what they should do

Since you're using jQuery quickly validating a minimum number of chars will be easy.

4
  • I don't think this really addresses the question. It's not about whether the info is 'valid' or not ‒ it's about how to let the user know that the app won't do auto-complete until the user has entered more characters. Commented Feb 3, 2014 at 16:39
  • @vincebowden you're right but the principle is the same, also it will help people who come here via google for something similar.
    – S..
    Commented Feb 3, 2014 at 17:00
  • There are common principles, but it's also the details that matter in UI. In your answer you say to disable the button until the user has entered enough characters - but that's really not helpful in the OP's situation. Commented Feb 3, 2014 at 17:18
  • @vincebowden "also it will help people who come here via google for something similar"
    – S..
    Commented Feb 3, 2014 at 18:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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