Wishlist: Improve Unity Dash's search algorithm

Bug #764857 reported by zorgoth on 2011-04-18
This bug affects 17 people
Affects Status Importance Assigned to Milestone
Ayatana Design
unity (Ubuntu)

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.

So I'd propose that Unity Dash incorporates the following changes:

1) Allow characters to be skipped in potential matches

2) Highlight the characters in the matches that match the search term

3) Prioritize matches based on frequency of use

4) Only search application names, not descriptions

zorgoth (freepskov) wrote :

Note: this bug is based on my brainstorm idea


Changed in unity (Ubuntu):
importance: Undecided → Wishlist
status: New → Incomplete
Changed in unity:
status: New → Incomplete
tags: added: needs-design
Andrés Felipe Vargas (andphe) wrote :

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.



Sebastien Bacher (seb128) wrote :

> 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.

that's because you use alt-f2 right? if you click on the ubuntu logo or use the dash it would match on compiz but alt-f2 is to run a specific command

Changed in unity:
importance: Undecided → Wishlist
Jorge Castro (jorge) wrote :

We also need to pay attention to tasks an app does. For example: "network" returns the network tool, but typing "DNS" doesn't.

Perhaps we can index an application's strings to make this easier.

exactt (giesbert) wrote :

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.

Vincent Ladeuil (vila) wrote :

full agreement with zorgoth, I'd love to use only the Dash but not getting the most often used apps by typing their first letter just don't cut it.

Gnome DO provides that for any user apparently by promoting the most often used apps and shortcuts used to get to them (or if it doesn't then the Dash should ;)

I use a workaround so far by installing Gnome Do in the launcher in the first position so I can the use Super-1 to launch it.

Even with one additional key stroke (Super-1 for Gnome DO vs Super for the Dash) the search algorithm of the former wins in the number of keystrokes eternal battle...

Matthew Paul Thomas (mpt) wrote :

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.

Changed in ayatana-design:
status: New → Incomplete
zorgoth (freepskov) wrote :

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"...

Launchpad Janitor (janitor) wrote :

[Expired for unity because there has been no activity for 60 days.]

Changed in unity:
status: Incomplete → Expired
Launchpad Janitor (janitor) wrote :

[Expired for unity (Ubuntu) because there has been no activity for 60 days.]

Changed in unity (Ubuntu):
status: Incomplete → Expired
Changed in unity:
status: Expired → Opinion
Changed in unity (Ubuntu):
status: Expired → Opinion
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers