Filtering entires via tag field and checkbox field using a form *** Edited the question
I have a code that used to work fine on Craft 2 and I don't understand what I need to change to make it work on Craft 3.
I am using form to filter through a channel of entries based on two fields - checkbox field with handle blogcategory and tags field with handle blogTags.
Here is the code of the form I am using for the filtering (worked perfectly on craft 2):
{% set blogcategory =  craft.request.getQuery('blogcategory') %}
{% set tags =  craft.request.getQuery('tags') %}

&lt;form action=&quot;&quot; method=&quot;get&quot;&gt;
    &lt;div class=&quot;filtering&quot;&gt;

        &lt;div class=&quot;section {% if blogcategory %}active{% endif %}&quot; &gt;
            &lt;span class=&quot;title&quot;&gt;category&lt;/span&gt;
            &lt;select name=&quot;blogcategory&quot;&gt;
                &lt;option value=&quot;&quot;&gt;Any Category&lt;/option&gt;
                {% for option in craft.fields.getFieldByHandle('blogcategory').settings.options %}
                    &lt;option value=&quot;{{ option.value }}&quot;&gt;{{ option.label }}&lt;/option&gt;
                {% endfor %}
            &lt;/select&gt;
        &lt;/div&gt;
        &lt;div class=&quot;section {% if tags %}active{% endif %}&quot;&gt;        
            &lt;span class=&quot;title&quot;&gt;tags&lt;/span&gt;
            &lt;select name=&quot;tags&quot;&gt;
                &lt;option value=&quot;&quot;&gt;Any tags&lt;/option&gt;
                {% for tag in craft.tags.group('blogTags') %}
                    &lt;option value=&quot;{{ tag.title }}&quot;&gt;{{ tag.title }}&lt;/option&gt;
                {% endfor %}
            &lt;/select&gt;
        &lt;/div&gt;  
    &lt;/div&gt;
    &lt;div class=&quot;submit&quot;&gt;    
        &lt;input type=&quot;submit&quot; value=&quot;filter&quot;&gt;
    &lt;/div&gt;  
&lt;/form&gt;

And here is the code for displaying the entries:
&lt;div class=&quot;container&quot;&gt; 
    {% set entries = craft.entries.section('blog') %}
    {% set search_terms = '' %}
    
    {% if blogcategory %}
        {% set search_terms = search_terms ~ ' blogcategory:' ~ blogcategory %}
    {% endif %}

    {% if tags %}
        {% set search_terms = search_terms ~ ' tags:' ~ tags %}
    {% endif %}

            
    {% if search_terms %}
        {% set entries = entries.search(search_terms) %}
    {% endif %}
    
    {% for entry in entries %}
        &lt;div class=&quot;thumb&quot;&gt;
            &lt;a href=&quot;{{ entry.url }}&quot;&gt;{{ entry.title }}&lt;/a&gt;
        &lt;/div&gt;
    {% endfor %}
&lt;/div&gt;

The problem is that after submitting the form with the desired filtering, none of the entries are showing up at all. It seems like the .serach function is not working...
I am a bit lost how to start understanding what fails under Craft 3...
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 %}