mysql - Magento 搜索未显示相关结果

标签 mysql magento

我的 magento 商店在搜索时无法显示相关结果。一个完美的例子是:

http://supercb.com/catalogsearch/result/?q=cobra+ltd

正如您在页面下方所看到的,有几种产品的名称中含有“cobra ltd”,但它们并不位于结果的顶部。我将搜索设置为全文,并且只有名称属性可搜索。最小搜索查询设置为 2,尽管 mysql 配置 (ft_min_word_length) 为 3。同样在 mage 核心中,我将类似条件更改为

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

我已经清除了缓存和数据库结果,但仍然没有运气。有人知道为什么我的搜索无法正常工作吗?由于我的很多产品的名称都有 2 个字母部分,我是否必须更改 mysql 配置? (不确定在 Hostgator 上是否可行)

最佳答案

因为数据库 LIKE 搜索绝对是地球上最糟糕的搜索形式。

它们按照在数据库中找到的顺序返回找到的项目,而不是按照匹配相关性。 Magento 甚至没有开始在社区版中解决这个问题。通常相关项目将位于六页结果集合的第三页上。

下一个最糟糕的搜索形式是 MySQL Fulltext,您必须尝试 my.cnf 文件中的设置。当全文搜索开始尝试对相关性进行排序时,您会发现它还不够好。

Magento 构建于 Zend Framework 之上,其中包括 Lucene 搜索。有一些模块可以打开它并为您提供各种功能,以便在您开始按相关性排序之前提供相关结果。该集合往往是相关的,然后按相关性降序排序开始使首页的前半部分看起来相当不错。

基本上,这是您需要购买的模块之一,值(value) 150-250 美元的模块可以立即获得返回。您因搜索不佳而从客户那里收到的仇恨邮件往往会消失,订单也会增加。不要为了省钱而在这方面精打细算。

不要像我浪费时间试图让 Stock Magento 搜索工作一样浪费时间。许多免费模块的作用很简单,因为它们没有用 Cat OHC 6 缸柴油机取代 2 冲程除草发动机。

关于mysql - Magento 搜索未显示相关结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24005787/

相关文章:

mysql - Reactjs - 日期类型字段不更新DATE类型的MYSQL日期列

caching - magento:fast_backend vs Slow_backend vs backend - 这里发生了什么?

linux - 是否可以在 Linux 上运行 Magento TAF(测试自动化框架)?

php - ZEND 获取邮件正文

Magento,填充管理编辑表单上的复选框字段

mysql - 查找不在另一个表中的记录

html - 如何停用获取值数据库以在 laravel 4 中选择框

php - MYSQL 统计一个特定的条目

sql - MySQL 和 UTF-8

caching - 如何在打开全页缓存的产品页面中包含动态 block ?