Are you planning to publish or share those photos in some manner, or is it just a personal catalog?
If it's a personal catalog, you could do it in Photos - there's plenty of capability for captioning/sorting/searching when you know how. You can include photos in a Numbers or Excel spreadsheet, for that matter.
You'll also find a fair number of special-purpose programs, mostly intended for collectors, eBay sellers, etc. (many of those are on iOS).
If you need to share that catalog with others... would it be shared on a corporate network, over the web? At that point, the size and scope of the project may determine what you use, but you start moving towards a true database management program. Filemaker, SQL, mySQL, etc. These days, it's a rare database that can't deal handily with multimedia content. A photo is little different than a block of text for today's database management systems. But that could be overkill, depending on the scope of the project.