【问题标题】:Magento Quick SearchMagento 快速搜索
【发布时间】:2012-07-03 08:51:22
【问题描述】:

我在使用 Magento 快速搜索时遇到了一个小问题。当我在框中搜索时说

ice machine

然后所有内容都将返回标题中包含icemachine 的位置。我需要它,所以它只会搜索标题中带有确切字符串 ice machine 的产品。

我发现如果我将 "ice machine" 与双语音标记放在一起,它只会返回完全匹配的产品名称。

所以我需要一种方法,以便在搜索查询周围自动添加双语音标记,以便它会搜索全文而不是单独搜索两个单词。

有没有办法在 HTML 表单中做到这一点?

【问题讨论】:

    标签: php html forms magento


    【解决方案1】:

    MagentoCommerce 论坛多次讨论了这个问题。 Like 搜索逻辑从 AND 更改为 OR。为了提供更好的结果,需要将其改回 AND,以便搜索查询中的所有项目都必须匹配。

    Search Logic Fix

    app/code/core/Mage/CatalogSearch/Model/Mysql4/Fulltext.php找到类public function prepareResult($object, $queryText, $query)

    以下代码:

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

    需要

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

    创建您自己的重写模块以仅覆盖此类或通过将整个文件 Fulltext.php 复制到 app/code/local/Mage/CatalogSearch/Model/Mysql4/Fulltext.php 来进行覆盖 并将 OR 修改为 AND。模块更可取。

    【讨论】:

      【解决方案2】:

      使用表单,您可以使用 javascript 执行此操作,但您必须注意客户是否已经自己输入了双引号。
      我的建议是重写 Mage_CatalogSearch_Helper_Data 助手并覆盖 getQueryText() 方法。在那里,您可以引用现有的引号并在查询周围添加您自己的引号。

      【讨论】:

      • 我不知道该怎么做你能帮我解决吗?
      • 有很多关于如何重写 Magento 助手(或模型或块)的信息来源。这超出了这个问题的范围,但是如果您想了解如何有效地自定义 Magento,您需要知道这一点。查看magentocommerce.com/knowledge-base/entry/…,了解 Alan Storm 的精彩介绍。
      猜你喜欢
      • 1970-01-01
      • 2011-07-27
      • 2018-10-10
      • 2015-03-20
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多