Bug Description

Unity Dash as far as I can tell uses a rather primitive instant search algorithm that only matches the beginnings of words and doesn't prioritize based on use. I think that this needs serious improvement as sometimes you are forced to start over or type as many as 7 or 8 characters to get the right match using only the keyboard. Since the Dash is one of the primary features in Unity, I think that this algorithm needs to be improved.

Another problem with the Dash's algorithm is that it appears to use lots of invisible material, probably some kind of application description, in making matches, which creates unexpected matches that I doubt people are often very interested in. The search algorithm should be transparent about what it is searching, and I think that just searching the names, or at least giving automatic priority to entries with matches in the names, is going to end up with better results.

As a model for a new algorithm my personal recommndation would be more like Gnome Do's.

Gnome-do's search algorithm allows you to skip characters instead of finding an exact match. For example:

a) 'ww' would likely open World of Warcraft
b) 'fox' would probably open firefox (well, actually f will open firefox since it prioritizes frequently used options)
c) 'out' will run log out (observe that log will not in general as many things start with log!)

Gnome Do is transparent about how it works because it highlights the characters you type in its matches, and you catch on very quickly. For keyboard oriented users this algorithm would is a clear improvement, and for mouse oriented users it certainly doesn't do any damage.

Gnome Do also prioritizes results based on frequency of use, which Dash also ought to do better. I'm not proposing making the Dash into some kind of Gnome Do clone, particularly since the Dash unlike Gnome Do has nice features for mouse oriented users, but the instant search algorithm in Gnome Do is unequivocally better. You pick it up in minutes of use and it's the number one reason so many people like Gnome Do. It gets faster matches and you don't have to worry as much about mistakes.

I agree, I expend several minutes trying to execute compizconfig-settings-manager just because I didn't know the exact command name, if one search for compiz it's not matched, only if you know that the command is "ccsm" then you write cc you get it among the results.

I think this is an important barrier for new users or users with a low level of knowledge to use Unity, imho this ticket fit better as an important bug rather a wishlist one.

if it is true what's standing here, the search function is ridiculously primitive!

just stumbled upon it while searching the german expression for calculator ("rech"ner) which brings up unrelated stuff. as the program is named "taschenrechner" only "ẗasch" brings it up... you got to be kidding.

When reporting bugs, it's generally better to concentrate on describing a problem, and leave suggested solutions (if any) to the end. Assuming a solution often results in a bug report drifting until it gets marked Invalid because a different solution was chosen. Or it clumps together problems that could reasonably be fixed separately, in a way that makes duplicates harder to find and less likely to get fixed.

In this case, you are describing four separate proposed changes that would almost certainly be implemented one at a time. In particular, (1) is reported as bug 794565, (2) is reported as bug 607676, and (3) is reported as bug 775744. So, I suggest revising this bug report to describe (with examples) the problem that you think (4) would solve. In the meantime, I'm marking this as Incomplete and unmarking the duplicates.

The reason to implement (4) is because after implementing (1), not implementing (4) would make far too many matches. The kind of search algorithm used in Gnome Do or Synapse is designed for small strings of text, not large ones. Most paragraphs would match any reasonably short string of common letters.

I'd strongly advice against implementing (4) in its original formulation ("Only search application names, not descriptions"). In many cases, the name of an application is not known to the user, he/she only knows what to do with it. For example, Oneiric ships deja-dup for backup -- not including the description in the search would yield no results for the term "backup"...