Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
90% of the items returned by Keypirinha are irrelevant #158
I am using the application for some month now. I find it really powerful and technically cleanly written. I like the text configuration file. (It Reminds me of windows 3.x)
I'm using 2.11 with all the package on W7 64bits.
For example I type "Rogue" and Keypirinha is returning 55 results of wich only one is relevant. I don't understand why Keypirinha is returning those 54 other results. Only the first one should be return.
Here in the picture I'm showing you the first 11 results returned. Only the first result is relevant.
Here the item property for the second item returned. I don't understand why this item is ever returned?
20:21:36.216 Item properties:
I'm waiting for your answer.
tl;dr Keypirinha implements a permissive matching algorithm (i.e. fuzzy matching), which is the reason why there are 54 items more in the list. They actually match the sequence
More details: With an exact matching algorithm, you would not be able to type
All of this is then balanced by the scoring system that will tend to give more weight to items you have already launched, despite perhaps a lesser score in some cases.
Indeed, it is not an exact science and this algorithm, like any other, has its cons. It may happen for example that the scoring system gets too much involved in its task by pushing items to high in the results list, which may require you to scroll down the list a tiny bit. This is where the implicit keyword association mechanism comes into the game so it feels a bit more natural the next time you aim for the same item.
So in the end, yes in your example most of the items we see do not seem relevant, yet, the item likely to be the most relevant has been pushed up to the top of the list.
If the length of the results list feels too noisy, you may want to try the
[gui] max_height = 10
Well, is it possible to place different flags to implement different order of matching instead of very very very fuzzy result?
Maybe something like (just an idea).
Right now the algorithm is giving result that as the user I can not predict.
Here waterfox, the program should be first.
Here imdb the keyword should be first and not second. If I wanted the first result I would have typed "A cure for li". You can see on the last line the wrong search I'm sending often to imdb.
There are plan to improve the algorithm for the exact case corresponding to your first "waterfox" example, so the scoring system is a bit less involved in pushing already executed items. I've been considering to add an "exact vs. fuzzy" option but don't count too much on it for now as this was just a stone dropped in this deep well that is Keypirinha's todo list.
However, even after this improvement, you will always be able to find cases that you're not happy with. Your "imdb" example fall into this category since the answer really depends on the usage context and your statement would sound really not so obvious using a different kind of item for example.
Keypirinha tries to adapt to your usage profile but it certainly does not claim to have the same level of accuracy than a Google and you should understand that elaborating such a search algorithm is actually a science on its own that does not boil down to 5 bullet points in a comment. For instance, if I would strictly follow the ideal behind your examples to refactor the search algorithm completely in order to comply as much as possible to your user profile, some users would complain the same way, with the same arguments but giving opposite examples to elaborate on their thoughts.
Again, I enjoin you to try relying more on keyword-item association and to try to understand how it works as it might feel a bit tricky in some cases as well (i.e. args vs. no args items). Using your own ideology: Keypirinha is an improvable tool, it has its flows, pros and cons, and it cannot adapt to your usage profile as much as you, the brain, are able to understand how it works in order to make the best out of it.
I'm closing this as I got your point and there's nothing more to add on the subject that would not lead to an infinite loop of comments (no pun intended). Your feedback is appreciated but, alas, KP's author is not a search engine scientist :)