西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

Magento前台搜索结果太多的解决方法

时间:2016-05-09 11:24来源: 作者: 点击:
Magento使用magento1.4.2以后的版本,在使用前台快速搜索产品时,会发现搜索的数量过多的问题很多, 比如卖手机的网站:以关键字搜索nokia和nokia 5800会得到相同的结果,甚至nokia 5800会得

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行的样子
把OR换回AND 即$likeCond = '(' . join(' OR ', $like) . ')';
这个是用在使用magento后台设置like方式搜索方式$separateCond = ‘ OR ‘;  //大概在353行的样子
把OR换回AND 即$separateCond = ‘ AND ‘;
这个是用在使用magento后台设置fulltext方式搜索方式注意,在修改完成后,试一下搜索结果,有可能还会有意料外的产品出现,这时如5800不在产品名称中,这时5800有可能定义在充许快速搜索的属性中。

不知为什么magento没有在后台设置搜索的or和and的选项!

magento 1.6以上的,文件改成在 app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php  中了.

(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容