贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
点击数:11782015-07-15 11:07:50 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技
Magento使用magento1.4.2以后的版本,在使用前台快速搜索产品时,会发现搜索的数量过多的问题很多, 比如卖手机的网站:以关键字搜索nokia和nokia 5800会得到相同的结果,甚至nokia 5800会得到更多的结果, 实际上他的查找逻辑是所有有nokia或5800的都找出来,用的是每个词间 “或” 的关系, 这在产品较多的网站是不可接受的。 通过代码分析,通过代码分析,magento 1.4.2以后的版本在处理搜索关键字时用OR替换了AND,
他的代码是:
app/code/core/Mage/CatalogSearch/Model/Mysql4/Fulltext.php
这个文件按照相同文件结构复制到app/code/local文件夹下 然后查找
$likeCond = '(' . join(' OR ', $like) . ')';//大概在345行的样子
$likeCond = '(' . join(' OR ', $like) . ')'
;大概在353行的样子
不知为什么magento没有在后台设置搜索的or和and的选项!
magento 1.6以上的,文件改成在 app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php 中了.