我的magento商店在搜索时无法显示相关结果。一个完美的例子是:
http://supercb.com/catalogsearch/result/?q=cobra+ltd
正如您可以在页面下方看到的那样,有几种产品具有" cobra ltd"然而,在名称中,它们不在结果的顶部。我将搜索设置为全文,只有name属性是可搜索的。最小搜索查询设置为2,尽管mysql配置(ft_min_word_length)为3.同样在法师核心中我将类似条件更改为
$likeCond = '(' . join(' AND ', $like) . ')';
我已经清除了缓存和数据库结果,但仍然没有运气。有没有人有任何想法,为什么我的搜索没有正常工作?而且由于很多我的产品都有两个字母部分的名称,我将不得不改变mysql配置? (不确定在hostgator上是否可行)
答案 0 :(得分:0)
因为数据库LIKE搜索是地球上绝对最糟糕的搜索形式。
他们按照在数据库中找到的顺序返回找到的项目,而不是匹配相关性。 Magento甚至没有开始解决Community Edition中的问题。通常,相关项目将在六页结果集的第3页上。
下一个最糟糕的搜索形式是MySQL Fulltext,你必须在my.cnf文件中使用设置。虽然全文搜索开始尝试排序相关性,但您发现它甚至还不够好。
Magento构建于Zend Framework之上,其中包括Lucene搜索。有些模块可以打开它并为您提供各种功能,以便在您开始按相关性排序之前提供相关结果。该集合往往是相关的,然后按降序相关性排序开始使第一页的前半部分看起来很不错。
基本上,这是您需要购买的模块之一,价值150-250美元的模块具有相当快速的回报。您通过不良搜索从客户那里收到的仇恨邮件往往会消失,订单也会增加。不要吝啬美元以节省这笔钱。
不要浪费时间,就像我浪费时间尝试进行Stock Magento搜索工作一样。有很多免费模块,因为他们没有用Cat OHC 6 Cylinder柴油代替2冲程杂草发动机。