Obsidian Help says about Search Operators:
tag:Find tag in file.block:Find matches in the same block.
I read that you cannot limit tags to a block, because tag search always applies to the file.
But I also read here (and in the page’s examples) that you can group search expressions. This should only find notes that have at least one block that contains the word „dog“, but not the word „cat“.
block:(dog -cat)
Search‘s result are always whole notes. If you just want selected blocks in your result, Dataview plugin might be a better choice.