Not sure I see why you would need/want a FULL-TEXT search for this purpose.
Since you have a fixed set of tags, each with unique name (and id...and that's good db design!), you don't need to use full-text. You just need to search for matches.
And, for that matter, if you convert the tags-to-search-for into id's, first, then you just have to look for id's.
But sticking with the tag names, for example, you could do something like:
SELECT DISTINCT posts.*
FROM posts, tags_posts, tags
WHERE posts.post_id = tags_posts.post_id
AND tags_posts.tag_id = tags.tag_id
AND tags.name IN ('elephant', 'zebra', 'hydra')
(Okay, silly tags.name values, but you get the idea. It's a simple JOIN, and a simple list of names passed to an IN clause. Very efficient. More so than full-text would be.)