cancel
Showing results for 
Search instead for 
Did you mean: 

Reverse search funcionality

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

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

Reverse search funcionality

Hello friends,

 

I need to create a search form that looks for products that DOES NOT CONTAIN the search term.

 

The idea behind it is a element that says "Find products that you're not allergic to. I'm allergic to: 'search term' ". When the user types something and searches, the search results will show results that does not have that keyword.

 

Anyone have a clue on how to do it? Googled a bit but havent found anything.

 

Thanks in advice! Smiley Happy

3 REPLIES 3

Re: Reverse search funcionality

Hi @MatheusConrado,

 

You'll be using the regultar search and the a second one with the same features but only that want to exclude that key word, right?

Re: Reverse search funcionality

Hi @MatheusConrado

 

Try the below solution. I had used the same kind of scenario in one of my project to disallow search term from the prepared search result. 

 

Go to location /app/code/core/Mage/CatalogSearch/Model/Resource/ and override prepareResult() method in Fulltext.php at line number 334.

In the method, there is the code that splits the query string into words and generates a where condition to prepare search result. You can rewrite the class and method below in your way. Notice this line:

 

        if ($searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_LIKE
            || $searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_COMBINE
        ) {
            $helper = Mage::getResourceHelper('core');
            $words = Mage::helper('core/string')->splitWords($queryText, true, $query->getMaxQueryWords());
            foreach ($words as $word) {
                $like[] = $helper->getCILike('s.data_index', $word, array('position' => 'any'));
            }
            if ($like) {
                $likeCond = '(' . join(' OR ', $like) . ')';
            }
        }

Hope this could help you to sort out your problem. Smiley Happy

-- Ravindra

Re: Reverse search funcionality

@Ravindra Pratap  Solutions works perfect in my case. You saved my googling time. @MatheusConrado thank you for posting this problem.