For Obsidian, I use hierarchal tags (eg. #python/django/models) and the Omnisearch extension[1] for resurfacing and I don't have any complaints.
For tags, I use it much like a file navigator. In fact, it sits exactly where the files tree is in the default config. But, instead of files, its hierarchal tags.