Magento搜索产品结果不精准的问题

Magento的搜索产品默认结果集是按查询的词去分词了再OR查询(具体按Catalog Search设置的查询模式)。

比如搜索“magento 产品”这词的话,结果是可能包括“magento”或者包括“产品”的结果集。

如果想要查询的结果是精准的,既准确的搜索结果为“magento 产品”,可以改下 app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php 这文件(自己重写到local域)

在prepareResult函数里,找到"$likeCond  = '';" 下面的IF语句,整个注释掉,再在下面添加

$likeCond = '`s`.`data_index` LIKE :likew';
$bind[':likew'] = '%' . $queryText . '%';

就可以了。

具体大概看下图:

Magento搜索产品结果不精准的问题 图

P,这个修改是在Magento 1.7.0.2测试,其他版本搜索结果不准确
改法差不多一样。