NeoApplications / Neo-Store

An F-Droid client with modern UI and an arsenal of extra features.
GNU General Public License v3.0
2.74k stars 84 forks source link

About the priority in the search order #341

Closed xlucn closed 2 months ago

xlucn commented 1 year ago

Problem:

Currently, when searching a keyword, the result is presented in the following order (I haven't check the actual code, so they might not be accurate):

That makes some relevant new apps buried deep in the search result list, especially if the keyword is common and the list is long. This behavior might make the users think they are even older apps or less relevant.

This behavior, I think, inherits way back from foxy-droid days. But it's not good at all.

Example:

There is a specific case I run into today:

I searched the word "logcat", and naturally some apps with "logcat" in their name show up top in the list, sorted by date.

But some other related apps like "Developer Tools" and "Scoop" is much lower in the result list, after some very old apps.

Even worse, "Markor", an noting app, is higher than them two in this list. Why? I found the word "logcat" in a link url at the end of the description, which puts it before the more related apps. That's not right.

Discussion:

Maybe just remove this "app name -> app package name -> description" sorting order.

Or assign them some weights during sorting. For example, the later you find a keyword in description, it means the less relevant the app is with the keyword. Thus, give a smaller weight to the app, and make it appear lower in the list. For the update time, also assign old apps a smaller weight, so newer apps with description match can appear before old apps with name match.

And do not search link urls.

machiav3lli commented 1 year ago

Hehe, actually I'm working now days on revamping the search function (locally, partly still not commited) and still not settled on what has more priority. But I'll consider your suggestion.

The search results are already weighted, but the question considering "new" is: Is "new" related to being recently added or recently updated? Or both facts should be considered?

xlucn commented 1 year ago

Hehe, actually I'm working now days on revamping the search function

Glad it's been working on :)

Is "new" related to being recently added or recently updated

Maybe it should follow the user-defined sort option, if user specifies the order? Although this is not the current behavior: IMHO the appname-package-description order should be dropped.

Then, perhaps add a "default" or "overall" sort, where multiple aspects are taken into account.

awebeer256 commented 1 year ago

How about: don't look in the package name at all unless the keyword contains a period.

For ordering, something like: most recently updated first, but if the keyword is in the app name or short description, then pretend that app is half the age that it really is.

Of course, both of these would only apply to the "default" sorting; the user could go to an "advanced search" page with more options if they want to.

Switch123456789 commented 1 year ago

I think a good approach is to simply sort all results just by sort-settings but mark the search-term in all results that have them in the app- or package-name. Or do the same thing but show the ones with search term in the app- or package-name first, this way users can still distinguish what is what easily since nothing will be marked in the results that only have the term in the description.

xlucn commented 1 year ago

I think a good approach is to simply sort all results just by sort-settings

This kinda agrees with my suggestion (but I would like some other weighting to improve the result):

Maybe just remove this "app name -> app package name -> description" sorting order.

But the issue is, some results that partially match app name or package name are really irrelevant results. For example, when searching "irc", the top results are:

That's why I suggest to match keywords in description (probably need to match entire words to avoid the fore-mentioned irrelevancy).

machiav3lli commented 2 months ago

The priorities were mostly kept but now if an app had an update in the last year at least, it is preferred to the others which didn't get such update.