Skip to content

Enhancement: Implement Better Search Algorithm #3459

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
TechySC23 opened this issue Apr 12, 2025 · 13 comments
Open

Enhancement: Implement Better Search Algorithm #3459

TechySC23 opened this issue Apr 12, 2025 · 13 comments
Labels
enhancement New feature or request

Comments

@TechySC23
Copy link

Feature Request

The search algorithm which is used to search in Flow Launcher doesnt feel right.
I mean, sure, regex is very powerful, but, regex is really complicated for me, and i am sure, it is for others, so i would infact like to use another better search algorithm.

SOLUTION

I need a search algorithm which implements fuzzy search, which i hope would be easier for the devs and also might be good enough. Fuzzy search is probably better for us users, as like, PowerToys Run uses! which basically gives us a "Plug-n-Play" experience, Making PowerToys Run or CommandPallete, the absolute BEST "out-of-the-box", NO CUSTOMIZATION REQUIRED, thing.
which is probably good for them, but flow needs customization, i truly understand that.

As a user of FOSS, I know that there might be challenges, so I prefer fuzzy finding algorithms. The best thing you guys can do is, taking the code (ofc giving the credit as well) from other Open Source Projects, which would be much easier as the implementation would take time, but atleast you won't have to build the entire thing.

ALTERNATIVES

Like i have seen with the latest Windows 11 Insider Beta build 26120.3863 (See image below), Microsoft introduced Latent Semantic Indexing or LSI for Windows 11 Settings search in the search bar. Link to the article. As far as what I can search, this is used in SEO which made me think, if you guys can implement THIS or not, but i think this might be too much time-taking.

Additional info

I know this might sound similar to #3433 But this is the solution to that bug, or enhancement.

If you guys can mark this post in the #2926 Top ranked feature requests, it would be really appreciated.

Here are images for The blogpost:

Image

Image
@TechySC23 TechySC23 added the enhancement New feature or request label Apr 12, 2025
@Jack251970 Jack251970 changed the title Implement Better Search Algorithm Enhancement: Implement Better Search Algorithm Apr 12, 2025
@Jack251970
Copy link
Contributor

Yes, I am planning this with technology of LLM, etc. But it is hard to implement and it can be our long-term plan.

@Jack251970 Jack251970 added this to the Future milestone Apr 12, 2025
@TechySC23
Copy link
Author

What about Fuzzy Search? seems pretty easy with Python?

@TechySC23
Copy link
Author

Yes, I am planning this with technology of LLM, etc. But it is hard to implement and it can be our long-term plan.

The "LLM"'s are only needed when using "LSI" but not "Fuzzy Search", Before the age of AI-drama, fuzzy finding was already implemented in a lot lots of programs. So I do think that you guys could ship something with like a fuzzy finding-regex matching algorithm, which could genuinely help in searching.

I do infact like the PowerToys Run's Search method, as its super fast, well, ofc its microsoft who's optimizing the program to run on Windows, but super fast doesnt need to be prioritized, as flow is as fast as possible. Which brings me to the actual point, that is its searching algorithm which is way, way too advanced to understand for me, but i do think that it optimizes on the things you search, but the best thing is it uses fuzzy search, NOT LSI. And fuzzy search should be well optimized for a program like Flow Launcher as its searching, Files, Programs, The Web, and more. It's a "Launcher" which probably shouldve had this.

And woah, Wox 2.0.0 just dropped? and wait, it says, "AI-ready commands" and whatever the f*ck i don't care,

Guys, don't go to the AI-dumb shit side, just focus on fixing the bugs, and like implementing very nice features like fuzzy finding in Flow Launcher.

I will probably make a beta plugin for you guys, which makes fuzzy finding, a feature in flow. I don't still know proper python, i know how to code, i'll probably do some vibe-coding, and also verify it before making the plugin. Don't worry, it will be safe.

@TechySC23
Copy link
Author

Even Wox has learning-based searching algorithm, which for me, is pretty insane, i would really REALLY like to have that feature, properly implemented

@TechySC23
Copy link
Author

#328 is one of the reasons related to this, i would like to add a "keep fresh" label to this issue

@TechySC23
Copy link
Author

In #328 jjw24 talks about fuzzy search?? When was it even implemented?

@Jack251970
Copy link
Contributor

Jack251970 commented Apr 13, 2025

We have already implemented the fuzzy search algorithm: https://github.com/Flow-Launcher/Flow.Launcher/blob/dev/Flow.Launcher.Infrastructure/StringMatcher.cs.

But we still get plenty of issues about the enhancement. So it needs improvement.

@TechySC23
Copy link
Author

Oh got it, it needs improvement. What about the search score? the search score thing seems very, very bad at predicting in what programs it should search. I like every aspect of Flow launcher, but the programs plugin is so glitchy and its searching algorithm is 🤮

@TechySC23
Copy link
Author

@Jack251970 Does Flow Launcher learn from the searching?

@Jack251970
Copy link
Contributor

Oh got it, it needs improvement. What about the search score? the search score thing seems very, very bad at predicting in what programs it should search. I like every aspect of Flow launcher, but the programs plugin is so glitchy and its searching algorithm is 🤮

Yes, our team still has significant work ahead to improve search scoring.

@TechySC23
Copy link
Author

Yeah, i'll try and improve the search score algorithm by making a plugin and trying to do the perfecting

@TechySC23
Copy link
Author

Hey, Jack, I'm ready to start working on the fuzzy search improvements 😄

But Some questions

Should I focus on building a new, separate plugin that provides its own fuzzy search logic, maybe triggered by a specific keyword like fs ? This could offer an immediate, improved alternative experience.
Or, would it be more valuable for me to dive directly into the main Flow Launcher C# codebase to try and debug and fix the existing fuzzy search implementation?

I'm open to either path! Knowing which approach you think is best will help me code using ai (ofcourse as i'm weak in C# but i know what makes sense, but i don't know where to start with, so I'll continuously try to teach myself along the way) effectively. If it's option 2 (the core code), any pointers on which files or modules handle the current fuzzy search would be incredibly helpful to get me started.

@Jack251970
Copy link
Contributor

Jack251970 commented Apr 13, 2025

Hey, Jack, I'm ready to start working on the fuzzy search improvements 😄

But Some questions

Should I focus on building a new, separate plugin that provides its own fuzzy search logic, maybe triggered by a specific keyword like fs ? This could offer an immediate, improved alternative experience. Or, would it be more valuable for me to dive directly into the main Flow Launcher C# codebase to try and debug and fix the existing fuzzy search implementation?

I'm open to either path! Knowing which approach you think is best will help me code using ai (ofcourse as i'm weak in C# but i know what makes sense, but i don't know where to start with, so I'll continuously try to teach myself along the way) effectively. If it's option 2 (the core code), any pointers on which files or modules handle the current fuzzy search would be incredibly helpful to get me started.

Thanks for your consideration!

I think it could be better if you edit from FL side. You just need to check this class: https://github.com/Flow-Launcher/Flow.Launcher/blob/dev/Flow.Launcher.Infrastructure/StringMatcher.cs and bring better fuzzy search algorithm because it can bring improved better fuzzy search as API function for all plugins.

Here is one PR for your reference: #616.

@jjw24 jjw24 removed this from the Future milestone May 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants