我有一个自定义目录搜索,有多个要搜索的字段(例如:宽度,长度等)。但默认情况下,Magento正在将其作为AND搜索。我希望它是一个OR搜索。
这是一个设置吗?我没有看到任何东西。
答案 0 :(得分:0)
您刚刚找到Magento技巧来增加 LIKE 搜索的回报金额。将其更改为 OR 逻辑并不能让它变得更好。更多结果,甚至更少的相关性。
您最好使用Lucene,Sphinx或Solr作为搜索索引器。前两个有模块,最后一个是Web服务器的功能。
在Magento的风车上倾斜将 AND 更改为 OR 需要进行类覆盖
app/code/core/Mage/CatalogSearch/Model/Mysql4/Fulltext.php
在
public function prepareResult($object, $queryText, $query)
if ($like) {
$likeCond = '(' . join(' AND ', $like) . ')';
}
需要
if ($like) {
$likeCond = '(' . join(' OR ', $like) . ')';
}
请记住,当Magento决定使用 OR 逻辑发布更高版本时,每个人都要求反向。
良好的搜索从Lucene开始,它是内置于Zend框架中的Magento基于并从那里上升的。它具有干扰,多元和模糊搜索功能,可以轻微拼写错误。而且非常重要的是,相关评级实际上是生成的,因此按相关性排序实际上有效 TM
Magento LIKE 搜索没有相关性,返回是任意的,通常是按数据库顺序,因此添加更多返回仅意味着您的客户经常需要排序10-30页才能找到任何内容。