2011-07-14 101 views
0

有谁知道是否有任何方法排除在Magento中搜索某些字词?例如:假设我有一家销售帽子的商店,我想排除单词“帽子”被搜索,所以如果有人搜索“黑色帽子”,它只会返回“黑色”的结果,因为无论如何,所有的产品都是帽子,如果它在搜索字词中允许“帽子”,那么它会返回所有帽子。Magento - 排除搜索字词

任何想法?

回答

1

鉴于您列出的情况,我不确定您是否真的需要这样做。 Magento使用likefulltext作为可用的搜索选项(通过管理>系统>配置>目录>目录搜索进行设置),如果搜索查询是“黑帽子”,那么这两个都不会返回所有帽子。

如果您仍然觉得需要排除某些搜索词,您可以在本地代码池中扩展app/code/core/Mage/CatalogSearch/Model/Query.php,并添加一种方法来删除任何不需要的搜索词。或者 - 这是我将采取的方法 - 创建一个带有观察者的小模块,以捕获controller_action_predispatch事件。这可以让您在查询传递到ResultController.php之前清理/修改查询参数,以删除任何应排除的搜索项。

+0

我可以确认这两个Magento搜索选项都不能解决这个问题。喜欢和全文都会返回所有产品。您可以在http://twistedtime.com – a1anm

+0

上输入“Pink Watches”来查看此问题:发现问题:http://www.magentocommerce.com/bug-tracking/issue?issue=10580 – a1anm

+0

@ a1anm使用您的示例搜索查询“Pink Watches”实际上似乎非粉红色的Rakumi(IDEA)Watch仍包含“short_description”中的Pink作品,该作品通常会被搜索到。从“short_description”属性中删除“Pink”或将该属性设置为不可搜索(至少用于快速搜索)应该可以解决您的问题。 –