2014-04-09 33 views
0

我有一個自定義的目錄搜索有多個字段進行搜索(例如:寬度,長度等)。但默認情況下,Magento將其作爲AND搜索進行處理。我希望它是一個OR搜索。Magento CatalogSearch使用或而不是AND

這是一個設置?我沒有看到任何東西。

回答

0

您剛剛發現了Magento技巧,以便從其LIKE搜索中增加回報金額。將其更改爲邏輯並不會好得多。更多結果,甚至更少相關性。

你最好使用Lucene,Sphinx或Solr作爲搜索索引器。前兩個模塊,最後一個是Web服務器的功能。

在Magento的搜索的放矢改變OR需要

public function prepareResult($object, $queryText, $query)類覆蓋了

app/code/core/Mage/CatalogSearch/Model/Mysql4/Fulltext.php

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

需求是

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

請記住,每個人都在問到做反向時,Magento的決定發佈以後的版本與OR邏輯。

好的搜索開始於Lucene,它是內置於Magento所基於的Zend Framework中的,並從那裏開始。使用詞幹,複數和模糊搜索很容易導致輕微的拼寫錯誤。而真正重要的是,實際產生的相關等級,以便按相關度排序實際工作TM

Magento的LIKE搜索有沒有相關性,收益是任意的,經常在數據庫中以便因此增加更多的回報只是意味着您的客戶通常需要通過10-30頁進行排序才能找到任何內容。