【问题标题】:Multiword search in magento 1.6magento 1.6 中的多词搜索
【发布时间】:2012-01-02 22:36:27
【问题描述】:

在修复了许多错误后,我最近将我的 magento 从 1.4 升级到了 1.6.1,但我仍然有一个问题。当我搜索多个单词时,目录搜索将返回许多结果。 例如“samsung 2100”,它将搜索 Samsung OR 2100 上的所有内容。

我尝试过编辑

-app/code/core/Mage/CatalogSearch/Model/Mysql4/Fulltext.php(损坏后什么也没做)

-app/code/local/Mage/CatalogSearch/Model/Mysql4/Fulltext.php(损坏后什么也没做)

-app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php(做了什么)

http://www.magentocommerce.com/boards/viewthread/233799/#t360244

【问题讨论】:

  • 如果您显示“做了某事”的代码 (Fulltext.php) 可能会有所帮助,因此我们知道您尝试了 什么
  • 第 345 行...没有这个选项?
    prepareTerms($queryText, $query->getMaxQueryWords());

标签: magento


【解决方案1】:

我在 Magento 的默认搜索中发现的一件事是,它在“加权重要字段”方面可能更聪明一些 对于我们来说,我们发现我们的很多搜索查询都包含品牌名称。例如。 '耐克跑鞋'。 我们还发现,许多搜索短语在某种程度上与我们设置的类别相关。例如。 '跑鞋'

我所做的是编写了一段代码,该代码将从搜索查询中提取品牌名称和类别,并将它们用作产品 ID 的过滤器,Fulltext.php 将其保存到结果表中。

你想从

中移动上面提到的 php 文件

/app/oode/core/Mage/CatalogSearch/Model/Resource/Fulltext.php 到 /app/code/local/Mage/CatalogSearch/Model/Resource/Fulltext.php

我所做的是将我的代码调整放在:

https://gist.github.com/jaseclamp/10083937

在我们的情况下,这一点代码大大提高了我们搜索结果的准确性。上面的代码似乎也与 Magento 在同义词和重定向等方面所做的任何事情没有冲突。即使我们在实际的 MySQL 查询使其更有效。它为搜索的处理增加了几微秒,但是一旦缓存了结果,后续搜索就会很快。

如果你想看看我的代码如何调整用于将搜索结果插入到结果表中的 MySQL 就放:

echo "<pre>"; print_r($sql); die; 

在函数末尾的“$adapter->query”之前。

【讨论】:

    【解决方案2】:

    转到这个文件:

    /app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php

    在第 345 行更改 OR —> AND

    删除现有的搜索词。刷新缓存....应该像魅力一样工作

    在这里查看....Dholo.com

    尝试使用多词搜索...它只返回具有这两个词/的产品

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-01
      • 2014-12-16
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      相关资源
      最近更新 更多