Why not simply switch the default search to using the sort by name option instead of sort by “freshness”? That is a very easy change that would improve things greatly.
If you guys are interested in accepting that idea I would be more than willing to change the few lines of code necessary to make that happen and submit it as an MR.
I agree with sorenstoutner. Change the search defaults so it at least finds the apps that match the search term by their name first then apps with similar words in their app description second
BTW, dvckdvkgo is burying “privacy browser” IDK how far down, and mogeek has your site on bottom of page 2, for me… (and they continue regularly giving plain 403 errors for searches with Tor).
Neither of those surprise me. There is a huge difference in searching the general web for Privacy Browser and searching an app repository that contains an app named Privacy Browser for that exact phrase. Although I expect that over time, as Privacy Browser increases in popularity, that problem will take care of itself.
Regarding Tor, it does not surprise me that parts of the internet are inaccessible through their network. My own website blocks some Tor traffic because hacking attempts have come from those IP addresses:
https://iplists.firehol.org/ is also a great source of many other lists, they all work with pfBlockerNG too.
I think I found the problem. Search the f-droid app for ‘hackers keyboard’. The app reports ‘No Matching Applications Available’.
So now search the web f-droid for hackers keyboard and there it is in the search results.
It is at f-droid.org/en/packages/org.pocketworkstation.pckeyboard/
Notice its file name on f-droid is not hackers keyboard it is org.pocketworkstation.pckeyboard.
So now use the f-droid app to search for pckeyboard and voila, there is the hackers keyboard in the search results
So now Privacy Browser on the f-droid web is at f-droid.org/en/packages/com.stoutner.privacybrowser.standard/
So search the f-droid app for privacybrowser as one word and voila again there it is in the app at the top of the list lol.
The f-droid app is using the app filenames as its search database and not the regular app titles.
IIRC, it uses app name, description and package name. It doesn’t ignore app name, but the reason you get no result here is because it’s “hacker’s keyboard”, not “hackers keyboard”. The word “hackers” is nowhere to be found, so it doesn’t match.
That’s a hell of an attitude for someone who is clearly wrong.
But okay, here is the proof: the word “hackers” is not on that page:
Which is why F-Droid won’t find it with “hackers”:
But will with “hacker’s”:
Given how the word “hacker’s” is only in the title and not in the description or package name, the F-Droid app must be searching the titles too:
Oh please. You think I cant see you edited your comment? You originally said the app is not called hackers keyboard anymore.
I find it very interesting you claim you can see I edited my comment, as I haven’t. If I did, there would’ve been a pencil icon and you could see exactly what I edited.
I don’t understand why you need to have such an attitude, telling me I’m posting “low-effort bullshit” and when I prove you wrong claim I edited my post while everyone can see I didn’t and claiming I said something everyone can verify I didn’t. Just admit you made a mistake? Everyone is wrong sometimes, there’s no shame in that. Hell, I am wrong often enough myself. Attacking people like you’re doing though is not cool.
Anyway, let’s get back on topic, shall we?
For what it is worth, edits in a short time frame after post will not result in the edit symbol or history.
But yes, please let’s be friendly y’all.
I agree that this should be discussed without resorting to personal attacks.
So far, in this thread, I have yet to see an example where the default search results in the app are better than the search results when sorted by name. And there are several examples where the search results by name are demonstrably better. Is there any reason why the search by name shouldn’t be the default?
AFAICT, the search is based on SQLite’s “like” function along with some extra fields (name, description) in the app description. In reading through dbhelper it’s clear that we could use FTS5 to greatly improve search results. One option could be to load the metadata.json into SQLite via the json1 extension, and then use the FTS5 engine against that table.
We’ve recreated the six year discussion in #336 in this thread.
I’m willing to contract someone to implement FTS5 in the client because clearly the community needs it and the current state annoys the crap out of me when trying to find apps on device. My java is rusty and I don’t have time to write the code. If anyone wants to take a crack at it, dm me. If not, upwork exists for this reason. The end of the contract is an accepted MR on gitlab.
This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
Can we expect a better search in fdroid like is is any exect word in written the actual app moat times shows in 3or 2apps down and if you make a spelling mistake then you can’t even find the app.
Interesting discussion. I switched to Foxy Droid a few years ago, its search returned much more relevant results than the official client at the time. Haven’t used the F-Droid app since.
@human Am I on shrooms or did you just throw a bunch of words together?!
Stay kind. English probably isn’t humans mother tongue.
I think I understood what was meant. Yes it wasn’t easy. But doable.
English probably isn’t humans mother tongue.
A little insulting if not true.
Plz Lower the bar to the (excessive, IMO) management-specified level:
Be civil. Don’t post anything that a reasonable person would consider offensive, abusive, or hate speech. (See FAQ - F-Droid Forum )
Maybe human was just careless. Or experimenting with alpha quality text obfuscating software. A polite reminder their statement made no sense is perfectly acceptable, IMO.
I have implemented sort by score like this:
create view app_search as
(select id, PACKAGE_NAME, PACKAGE_NAME search, 1000 score from app) union
(select id, PACKAGE_NAME, SEARCH_NAME search, 1000 score from app) union
(select id, PACKAGE_NAME, SEARCH_SUMMARY search, 100 score from app) union
(select id, PACKAGE_NAME, SEARCH_Whats_New search, 10 score from app) union
(select id, PACKAGE_NAME, SEARCH_Category search, 50 score from app) union
(select id, PACKAGE_NAME, SEARCH_DESCRIPTION search, 1 score from app)
-- example search for "photo"
where search like '%photo%'
group by id, PACKAGE_NAME
order by sum(score) desc, PACKAGE_NAME;
this way finding in the app-name or app-packagename has a higher score that app-summary or app-description and is therefore listed at the beginning.
ID PACKAGE_NAME SCORE
------ ---------------------------------------- -----
542721 site.leos.apps.lespas 1111
534739 com.fediphoto 1101
534789 com.fediphoto.lineage 1101
557365 de.bahnhoefe.deutschlands.bahnhofsfotos 1101
554641 dev.leonlatsch.photok 1101
554581 fr.s13d.photobackup 1100
554602 unisiegen.photographers.activity 1100
564700 org.stingle.photos 1011
554599 la.daube.photochiotte 1001
519140 name.gdr.acastus_photon 1001
560273 com.gtp.showapicturetoyourfriend 1000
554645 com.ruesga.android.wallpapers.photophase 1000
554568 de.onyxbits.photobookmark 1000
529362 com.tnibler.cryptocam 111
555016 org.piwigo.android 111
561794 com.simplemobiletools.camera 101
562105 com.simplemobiletools.gallery.pro 101
556243 com.tistory.deque.previewmaker 101
518970 de.k3b.android.androFotoFinder 101
543576 de.k3b.android.lossless_jpg_crop 101
564038 fr.nuage.souvenirs 101
565708 jp.muo.syncmemories 101
534999 me.murks.filmchecker 101
532822 me.rosuh.easywatermark 101
524765 org.proninyaroslav.blink_comparison 101
550900 org.witness.sscphase1 101
539876 click.dummer.imagesms 100
526608 com.dozingcatsoftware.cameratimer 100
570631 com.dozingcatsoftware.vectorcamera 100
536425 com.flipcamera 100
562332 com.gmail.mugcuposup.android 100
520837 com.isanexusdev.androidcpg 100
527611 com.nathanosman.chronosnap 100
528181 com.nauj27.android.colorpicker 100
567548 com.thibaudperso.sonycamera 100
533166 com.weatherlight.elloshare 100
564771 de.digisocken.stop_o_moto 100
544486 de.hu_berlin.informatik.spws2014.mapever 100
535409 de.repat.mosf 100
520396 eu.domob.anacam 100
535097 eu.faircode.finegeotag 100
528194 eu.quelltext.coloring 100
537750 fr.mobdev.goblim 100
526546 fr.tvbarthel.apps.cameracolorpicker 100
560382 mobi.omegacentauri.SendReduced 100
520560 org.quovadit.apps.andof 100
563413 wb.receiptspro 100
539823 com.germainz.identiconizer 11
535459 com.ultramegasoft.flavordex2 11
537017 de.hauke_stieler.geonotes 11
538256 me.anon.grow 10
547437 uk.co.richyhbm.monochromatic 10
528290 ac.robinson.mediaphone 1
518574 cf.fridays.fff_info 1
528999 ch.admin.bag.covidcertificate.verifier 1
557098 com.asdoi.quicktiles 1
527330 com.cheogram.android 1
533916 com.exifthumbnailadder.app 1
568805 com.genonbeta.TrebleShot 1
538071 com.graphhopper.maps 1
532873 com.hos_dvk.easyphone.full 1
541503 com.infomaniak.drive 1
547714 com.jairaj.janglegmail.motioneye 1
555223 com.m3sv.plainupnp 1
537937 com.mendhak.gpslogger 1
572809 com.nathaniel.motus.cavevin 1
536473 com.pitchedapps.frost 1
560265 com.securefilemanager.app 1
572017 com.tobykurien.webapps 1
533381 com.vishnuraghav.EnRecipes 1
571511 de.cyberit.wasgeht 1
552507 de.dennisguse.opentracks 1
558005 de.digisocken.reotwe 1
526559 de.k3b.android.camerafolder 1
561302 de.k3b.android.geo2articlesmap 1
548833 de.msal.muzei.nationalgeographic 1
554661 de.rwth_aachen.phyphox 1
560965 dev.marchello.sharik 1
536552 eu.quelltext.mundraub 1
553073 io.oversec.one 1
568827 io.treehouses.remote 1
563063 me.ccrama.redditslide 1
526943 me.hackerchick.catima 1
530198 me.thanel.dank 1
529596 net.cyclestreets 1
556552 net.guildem.publicip 1
552886 net.osmand.plus 1
532805 net.schueller.instarepost 1
535871 org.forkgram.messenger 1
540843 org.jellyfin.mobile 1
541982 org.kontalk 1
536244 org.liberty.android.freeotpplus 1
550066 org.noise_planet.noisecapture 1
533463 re.indigo.epistolaire 1
565358 superfreeze.tool.android 1
532185 sushi.hardcore.droidfs 1
568377 truewatcher.tower 1