【问题标题】:magento search issuemagento 搜索问题
【发布时间】:2012-01-10 07:23:03
【问题描述】:

我有一个问题急需您的帮助。我在 Magento 版本。 1.6.1.0,每当我在magento中搜索“baby's cute shoes”之类的句子时,结果都不准确,但是当我只搜索“cute”或“shoes”之类的词时,它就会给我结果。

我有一种感觉,magento 无法搜索句子,但可以搜索带有单词的产品。我可以做些什么来更好地优化 magento 中的搜索?

【问题讨论】:

  • Magento 的搜索不进行词组匹配。您要么有 SQL Like 匹配,它通过迭代搜索查询中的每个单词,然后应用 AND/OR 逻辑(AND 给出最佳结果,因为每个单词必须在结果中匹配)或全文应该给出更好结果比它做的更好。

标签: search magento


【解决方案1】:

搜索选项可以在后台系统 > 目录 > 目录搜索下找到,您可能将搜索类型设置为 LIKE。使用 FULLTEXT 模式可能会获得更好的结果。

【讨论】:

  • 通过 MySql my.cnf 设置正确设置后,使用 FULLTEXT 模式可能会获得更好的结果...
  • 我将其更改为组合 LIKE 和 FULLTEXT。对我来说很好。
【解决方案2】:

Magento 不会将输入的字符串作为一个完整的句子进行搜索。相反,它将您的搜索字符串拆分(标记)为单词,并将搜索包含任何这些单词的产品(实现“OR”逻辑)。因此,如果您正在搜索“red shoes”,它会找到包含“red”字样或包含“shoes”字样的所有内容。显然它在大多数情况下并不是很有用,因为它会产生很多完全不相关的结果。

您可以查看此免费扩展程序来优化您的搜索:Catalog Search Refinement FREE。此扩展将搜索行为修改为仅查找具有所有关键字的产品(换句话说,“AND”逻辑)。这只会找到同时包含“red”和“shoes”关键字的产品。还有Advanced Search version of that extension,它还会根据语音距离以及加权搜索属性等查找相似词,从而冒出最相关的产品。

【讨论】:

    【解决方案3】:

    我通过这个链接解决了我的问题 - https://stackoverflow.com/questions/1953715/magento-search-not-returning-expected-results

    我在app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php这行去了

    做了这个(下)

    复制app/code/core/Mage/CatalogSearch/Model/Mysql4/Fulltext.php到app/code/local/Mage/CatalogSearch/Model/Mysql4/Fulltext.php

    第 341 - 343 行 app/code/local/Mage/CatalogSearch/Model/Mysql4/Fulltext.php

    如果 ($like) { $likeCond = '(' .join(' OR ', $like) . ')'; } 改成

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

    【讨论】:

    • 仅供参考,您永远不应该修改 Magento 核心...使用模块扩展它,根据需要重写文件。
    【解决方案4】:

    还要确保更改结果的显示顺序。默认的 Magento 是向后服务。

    将以下内容添加到 /app/design/frontend/default/default/layout/catalogsearch.xml

    <reference name="search_result_list">
        <action method="setDefaultDirection"><string>asc</string></action>
        <action method="setDefaultOrder"><string>relevance</string></action>
    </reference>  
    

    在以下之间:

    <catalogsearch_result_index translate="label">
       ...
    </catalogsearch_result_index>
    

    【讨论】:

      【解决方案5】:

      Stock Magento 搜索需要进行一些调整才能使其正常运行。 Like 搜索在 1.5/1.6 中从 AND 逻辑更改为 OR 逻辑,并在恢复为 AND 逻辑时提供更好的结果。这已在 Magento 网站上的 Magento 论坛中的多个线程中解决。另一个解决方法是将复数形式中的 s 去掉,这在那边也有说明。

      删除尾随“s”的原因是大多数人不搜索“油压表”,而是搜索“油压表”,当您销售“0-100 psi 油压”时,它会完全丢失测量”。还将所有以“ies”结尾的项目别名为其单数。您很少销售“遥控飞机电池”,它会像“1200aH 飞机电池”一样具体,因此您不太精明的客户的搜索永远不会匹配。

      “宝贝的可爱鞋”除非出现在您用于填充全文搜索索引的项目中,否则永远不会获得成功。到底谁卖一种叫做“婴儿可爱鞋”的东西?我通常将这些类型的搜索同义以匹配列出项目的特定类别。一些客户搜索过于主观,无法与产品搜索的客观性质相匹配(实际商品与模糊的想法)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-11
        • 2020-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多