I'm sure I've said this before but I use lightroom
Keywords are added at the import phase and during editing if I feel I need to add further.
I import into a year folder, by date, so I can search by folders easily and track by date if required - i.e. a match on a given date.
Collections and sub collections are further used. i.e. Rugby, then year, then event. The same photo can exist in many collections, so I'll possibly have the same photo in say Rugby, website, selling etc.
On top of all that in the Library module you can search by keyword, metadata etc.
Then - anything that's exported as jpeg, goes into a similar folder structure as the collections.
I have one very fast disk for just this years raw files, another for the cache and catalogue files, with the OS and apps running from a third. Two disks for the older year raw files, plus another for the exported jpegs. All backed up to external disks.
It doesn't take me very long to find stuff.
EDIT: as for date. I generally have sort by capture time set in the libray module (and hence through the program)