2012-07-03 251 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