我对Magento快速搜索有一个小问题。当我在搜索框说Magento快速搜索
ice machine
那么一切都将被retuernd地方有ice
或标题machine
。我需要它,所以它只会搜索标题中确切字符串ice machine
的产品。
我发现如果我把"ice machine"
带上双重语音标记,它只会返回完全匹配的产品名称。
所以我需要一种方式,让双重语音标记自动添加到搜索查询的周围,以便它将搜索全文而不是两个词分开。
有没有办法以HTML的形式做到这一点?
我对Magento快速搜索有一个小问题。当我在搜索框说Magento快速搜索
ice machine
那么一切都将被retuernd地方有ice
或标题machine
。我需要它,所以它只会搜索标题中确切字符串ice machine
的产品。
我发现如果我把"ice machine"
带上双重语音标记,它只会返回完全匹配的产品名称。
所以我需要一种方式,让双重语音标记自动添加到搜索查询的周围,以便它将搜索全文而不是两个词分开。
有没有办法以HTML的形式做到这一点?
多次在MagentoCommerce论坛中涵盖此问题。 Like搜索逻辑已从AND更改为OR。为了提供更好的结果,需要将其重新更改为AND,以便搜索查询中的所有项必须匹配。
在应用程序/代码/核心/法师/ 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做一个覆盖和。该模块是可取的。
使用表单,您可以使用javascript来做到这一点,但您必须注意客户是否自己输入双引号。
我的建议是重写Mage_CatalogSearch_Helper_Data
助手并覆盖getQueryText()
方法。您可以在此处引用现有的引号,并在查询周围添加自己的引号。
我不知道如何做到这一点,你可以帮助我通过它吗? – Matt
关于如何重写Magento帮助程序(或模型或块)的信息有很多来源。这超出了这个问题的范围,但是如果你想学习如何有效地定制Magento,你需要**知道这一点。查看http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-1-introduction-to-magento,以获得Alan Storm的精彩介绍。 – Vinai