我们常常在magento搜索产品,比如按照产品名字来搜索“iphone”,但是搜索到的结果,居然没有我们在后台设置的产品。这常常会令我们非常郁闷。下面我们来看下如何修改让magento开发可以让产品按照我们想要的结果来展示。
Magento的搜索产品默认结果集是按查询的词去分词了再OR查询(具体按Catalog Search设置的查询模式)。
如果我们搜索产品“ihone 6 plus”这词的话,返回的结果是产品名字或者产品可查找属性(后台属性设置 use in catalog search)中包括“iphone”、“6”、“plus”的产品。
如果我们想让搜索的结果更加精确,比如搜索“ihone 6 plus”,能够直接显示出来“ihone 6 plus”,那就最好了。下面我们来修改一下“app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php”文件。我们可以通过重写model或者直接到community/local目录下创建相同路径的相同文件,下一步我们来修改搜索结果。
找到prepareResult()方法,再找到345行左右$likeCond = '';然后把整个if判断注释掉,最后在下面添加:
$likeCond = '`s`.`data_index` LIKE :likew';$bind[':likew'] = '%' . $queryText . '%';