cancel
Showing results for 
Search instead for 
Did you mean: 

How do I change magento 2 search from OR logic to AND?

SOLVED
   Did you know you can see the translated content as per your choice?

Translation is in progress. Please check again after few minutes.

How do I change magento 2 search from OR logic to AND?

How do I change magento 2 minisearch logic from OR to AND? Right now if I search for 'Shoe laces' , it returns all products with terms either 'shoe' or 'laces'. I need fulltext search, so that only product with full term ' Shoe laces' are returned. How do I achieve this?

2 ACCEPTED SOLUTIONS

Accepted Solutions

Re: How do I change magento 2 search from OR logic to AND?

You have to extend vendor/magento/module-catalog-search/etc/search_request.xml file 
in custom module. 
and change line 16: <queryReference clause="should" ref="search" /> 
to <queryReference clause="must" ref="search" />

View solution in original post

Re: How do I change magento 2 search from OR logic to AND?

I found the solution , create a file search_request.xml in your module's etc folder ,

copy the entire  <request query="quick_search_container" index="catalogsearch_fulltext"> node from vendor/Magento/CatalogSearch/etc/search_request.xml

and change

 <queryReference clause="should" ref="search" />

to this

 <queryReference clause="must" ref="search" />

do not forget to add sequence in your module file.

<module name="YOURMODULE" setup_version="1.0.0">
        <sequence>        
            <module name="Magento_CatalogSearch"/>
        </sequence>
    </module>

in case you installed your module and added <sequence> after that, just change your module version and run setup:upgrade again , thanks

 

View solution in original post

8 REPLIES 8

Re: How do I change magento 2 search from OR logic to AND?

You have to extend vendor/magento/module-catalog-search/etc/search_request.xml file 
in custom module. 
and change line 16: <queryReference clause="should" ref="search" /> 
to <queryReference clause="must" ref="search" />

Re: How do I change magento 2 search from OR logic to AND?

I did this , my module has etc/search_request.xml and I changed, clause="should" to clause="must" as you menitoned but nothing changed, it still takes the core vendor/magento/module-catalog-search/etc/search_request.xml only. How do I override the core vendor/magento/module-catalog-search/etc/search_request.xml. In my module.xml, I added this,

    <sequence>       
        <module name="Magento_CatalogSearch"/>
    </sequence>

 

but my search_request.xml is ignored, it takes the core search_request.xml only

Re: How do I change magento 2 search from OR logic to AND?

I found the solution , create a file search_request.xml in your module's etc folder ,

copy the entire  <request query="quick_search_container" index="catalogsearch_fulltext"> node from vendor/Magento/CatalogSearch/etc/search_request.xml

and change

 <queryReference clause="should" ref="search" />

to this

 <queryReference clause="must" ref="search" />

do not forget to add sequence in your module file.

<module name="YOURMODULE" setup_version="1.0.0">
        <sequence>        
            <module name="Magento_CatalogSearch"/>
        </sequence>
    </module>

in case you installed your module and added <sequence> after that, just change your module version and run setup:upgrade again , thanks

 

Re: How do I change magento 2 search from OR logic to AND?

sorry I added sequence after installing the module, that is why it did not work, after upgrading the module version it worked like a charm Smiley Happy

Re: How do I change magento 2 search from OR logic to AND?

I implemnented this and it works. However for every keyword that a search synonym exists for NO results wll be found any longer. It seems like the adapted query now searches for products that matches 'keyword' AND 'synonym' => which ofcourse will never give any result. Any solution?

Re: How do I change magento 2 search from OR logic to AND?

@rickert did you find a solution to this?

Re: How do I change magento 2 search from OR logic to AND?

No I'm afraid not. My developer created additional custom code to create M1-like search functionality. Which took a lot of time (and money).

Re: How do I change magento 2 search from OR logic to AND?

Hi, I followed this and now the search synonyms are not working. If I add synonyms: read,rid then searching read or rid comes up with no result. Please help.!