I think the hard parts here are UX related:
• more (quality) labels are better for search, but more labels mean a) harder to maintain, b) more time to add (even if you make forking / templates a thing) c) managing labels becomes it's own problem
• labels themselves have privacy/security issues. Who is allowed to search for what and on what basis? "all documents Jaime sent to their lawyer in the past week". This in itself has huge perf implications.
• Who is allowed to add labels? Are events like file open/save labels? Do we scan files to auto-add labels (the attack vectors here are amazing)?
• Do we embed dependency (ex: all files needed to run a game, all the photos/videos/music in some album or doc)? Is changing a dependency auto-COW, ignored (broken?), or put choice onto the changer (who may be ignorant to the impact)
This is a lot for end users, on top of assuming SQL/Venn like searches are actually wanted by users (A and B but not C). Also unlike web search, the feedback size is small, so harder/impossible to train a model on. The best you could hope for is to tweak some parameters/weights between pre-trained models.