Comment rechercher une expression exacte dans la recherche produits Magento ?

octobre 28th, 2015 | by | magento

Oct
28

Lorsque l'on effectue une recherche dans Magento cela va chercher tous les mots individuellement.
Exemple : pull rouge bleu
cela va donner comme réponse tous les produits qui contiennent soir le mot "pull" soit le mot "rouge" soit le mot "bleu".
Les résultats ne sont donc pas très précis.
Pour améliorer cela on va modifier la logique en remplaçant les OR par des AND.

Il faut surcharger le fichier App/Code/Core/Mage/CatalogSearch/Model/Resource/fulltext.php

Ligne 330

1
2
3
4
5
6
7
if ($like) {
$likeCond = '(' . join(' OR ', $like) . ')';
 
par
 
if ($like) {
$likeCond = '(' . join(' AND ', $like) . ')';

et ligne 355

1
2
3
4
5
6
7
8
9
10
11
if ($likeCond != '' && $searchType ==
 
Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_COMBINE) {
$where .= ($where ? ' OR ' : '') . $likeCond;
 
par
 
if ($likeCond != '' && $searchType ==
 
Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_COMBINE) {
$where .= ($where ? ' AND ' : '') . $likeCond;

Authored by

Laisser un commentaire