Filtering entires via tag field and checkbox field using a form
I'm not sure why your search is not working in this instance (though it might be because you're not executing the query, see my comment). But in general, fulltext search is way less precise, I would only do that if you need to support actual search terms. Since you're only filtering by categories and tags, I wouldn't search by category/tag titles, but instead use IDs to match the selected categories/tags directly. This will be way more precise, avoid edge-cases and will be much faster as well.
First you'll need to adjust your form so the select fields use IDs instead of titles as their value:
{# category filter #}
&lt;option value=&quot;{{ option.id }}&quot;&gt;{{ option.label }}&lt;/option&gt;

{# tag filter #}
&lt;option value=&quot;{{ tag.id }}&quot;&gt;{{ tag.title }}&lt;/option&gt;

Then adjust your query to query your blogcategory and tags field directly by ID:
{% set entries = craft.entries.section('blog') %}
{% set blogcategory =  craft.request.getQuery('blogcategory') %}
{% set tags =  craft.request.getQuery('tags') %}

{% if blogcategory %}
    {% do entries.blogcategory(blogcategory) %}
{% endif %}

{% if tags %}
    {% do entries.tags(tags) %}
{% endif %}     

Finally, make sure to actually execute the query:
{% for entry in entries.all() %}
    {# output results #}
{% endfor %}