2012-07-03 217 views
1

我对Magento快速搜索有一个小问题。当我在搜索框说Magento快速搜索

ice machine

那么一切都将被retuernd地方有ice或标题machine。我需要它,所以它只会搜索标题中确切字符串ice machine的产品。

我发现如果我把"ice machine"带上双重语音标记,它只会返回完全匹配的产品名称。

所以我需要一种方式,让双重语音标记自动添加到搜索查询的周围,以便它将搜索全文而不是两个词分开。

有没有办法以HTML的形式做到这一点?

回答

2

多次在MagentoCommerce论坛中涵盖此问题。 Like搜索逻辑已从AND更改为OR。为了提供更好的结果,需要将其重新更改为AND,以便搜索查询中的所有项必须匹配。

Search Logic Fix

应用程序/代码/核心/法师/ CatalogSearch /型号/ Mysql4/Fulltext.php找到类public function prepareResult($object, $queryText, $query)

下面一段代码:

if ($like) { 
    $likeCond = '(' . join(' OR ', $like) . ')'; 
} 

需要成为

if ($like) { 
    $likeCond = '(' . join(' AND ', $like) . ')'; 
} 

创建您自己的重写模块覆盖眼前这个类或通过拷贝整个文件Fulltext.php到应用程序/代码/本地/法师/ CatalogSearch /型号/ Mysql4/Fulltext.php和修改OR做一个覆盖。该模块是可取的。

0

使用表单,您可以使用javascript来做到这一点,但您必须注意客户是否自己输入双引号。
我的建议是重写Mage_CatalogSearch_Helper_Data助手并覆盖getQueryText()方法。您可以在此处引用现有的引号,并在查询周围添加自己的引号。

+0

我不知道如何做到这一点,你可以帮助我通过它吗? – Matt

+0

关于如何重写Magento帮助程序(或模型或块)的信息有很多来源。这超出了这个问题的范围,但是如果你想学习如何有效地定制Magento,你需要**知道这一点。查看http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-1-introduction-to-magento,以获得Alan Storm的精彩介绍。 – Vinai