搜索不返回结果


9

正如我在标题中所述,搜索产品时没有任何结果。到目前为止,我已经尝试过:

  1. 检查产品的可见度
  2. 我的产品有现货
  3. 我也将数量设置为100以确保
  4. 我已经更新了目录->管理产品->选择所有产品下的产品属性。
  5. 我将主要网站上的所有产品分配给了自己的特定商店视图。
  6. 名称属性可用于搜索。

我也尝试过搜索,sku但是什么也没有发生。奇怪的是,具有名称和sku作品的高级搜索。

而且我的问题仍然存在。.关于如何使我的产品在搜索时出现的任何想法?


它是简单的还是可配置的?重新索引了吗?
Shyam Krishna Sreekumar,2015年

我有2个简单的产品,其余的都是可配置的。到目前为止,我已经多次重新索引。
vasilisdmr 2015年

产品在目录中可见吗?
米兰·西梅克

你是什​​么意思?你的意思是如果我可以在目录->管理产品下看到它们?如果这是您的问题,那么可以,我可以看到它们。
vasilisdmr 2015年

我的意思是在浏览前端目录时它们可见吗?
米兰·西梅克

Answers:


9

打开文件Mage_CatalogSearch_Model_Layer和方法

public function prepareProductCollection($collection)

之前 return $this;

添加以下行:

Mage::log($collection->getSelectSQL(1), false, 'search.log', true);
Mage::log((array)Mage::getConfig()->getNode()->global->models->catalogsearch, false, 'search.log', true)

(用于调试目的是为了了解您的问题)。

然后打开您的var/log/search.log并将结果放在您的第一篇文章中(应该有很长的sql查询和数组,在其中可以看到重写)。


我会在早上尝试一下,并告诉您结果。
vasilisdmr 2015年

5

我经历过 我的解决方法是转到Manage Products并选择所有产品,然后"Update Attributes"从网格上方的下拉列表中执行一个。在“更新属性”屏幕中,移至Websites选项卡,然后通过选中复选框将其与相应的网站重新关联Add Products To Website

此后,可能需要重新构建另一个搜索索引。


我也遇到了这个问题,Update Attributes对我有用。
Paul Donnelly

阅读pt。#4和#5他已经做到了,他的产品已分配在必要的网站上
-zhartaunik

@zhartaunik在#4中,OP没有指定要修改的属性,在#5中,OP使用了与“网站”不同的术语“商店视图”。
John Orman

我将在一段时间内尝试。
vasilisdmr 2015年

我试过了,什么也没做,我想起我又做了一次,得到了同样的结果,但没有任何回报。
vasilisdmr 2015年


2

您是否创建了使用搜索所需的外部模块?在布局文件中查找类似这样的内容

<mdg_giftregistry_search_index>
    <reference name="content">
        <block name="giftregistry.search" type="core/template" template="mdg/search.phtml" as="giftregistry_search"/>
    </reference>
</mdg_giftregistry_search_index>

我没有使用任何需要搜索的外部模块。
vasilisdmr 2015年

2

对我有用的另一种可能性是使数据重新索引

为此,请转到管理面板>系统>索引管理,单击“全选”,在“操作”字段中选择“重新索引数据”,然后单击“提交”。

=)

和平!


1

许多问题可能产品属性设置错误。你需要 在此处输入图片说明

检查每个。


1

您可以在函数下方的类Mage_CatalogSearch_Model_Layer上调试收集对象。

public function getProductCollection()
    {
        if (isset($this->_productCollections[$this->getCurrentCategory()->getId()])) {
            $collection = $this->_productCollections[$this->getCurrentCategory()->getId()];
        } else {
            $collection = Mage::getResourceModel('catalogsearch/fulltext_collection');
            $this->prepareProductCollection($collection);
            $this->_productCollections[$this->getCurrentCategory()->getId()] = $collection;
        }

echo $ collection-> getSelect(); die('test');

        return $collection;
    }

此代码段必须放在哪里?
vasilisdmr 2015年

app / code / core / Mage / CatalogSearch / Model / Layer.php在第44行之后echo $ collection-> getSelect(); die('test');
sanji,2015年

结果将是?我的意思是,我将查看产品是否添加到$ collection中?
vasilisdmr

1

几天前我也遇到了同样的问题,我的问题是我已经覆盖了一个扩展程序的默认magento功能。因此它与我的搜索结果存在冲突。一次检查所有扩展名是否可能有冲突。


我会做到的,我会通知您
vasilisdmr 2015年

你可以做缓存,索引刷新吗?它需要这个。
Pratik Kamani 2015年

localhost /.../ index.php / catalogsearch / advanced 尝试一下,放置您的站点链接,并在该catalogsearch / advanced /之后,如果有任何线索。
Pratik Kamani 2015年

0

我遇到了同样的问题,我尝试了上述所有建议,但都没有成功,因此我在Google上搜索了每个问题,却一无所获,然后我在Google的Magento商店中搜索了如何使我的产品可搜索,我遇到了“ “搜索字词”位于目录中,而不是系统配置中的目录,而是添加新产品或编辑产品时的目录。在搜索查询中,添加要进行搜索的标题,在重定向中,输入要使用该名称的产品的整个URL地址。我出售性玩具,因此例如我在Magento Vibrator的搜索部分中键入,即使我有很多不同的型号,也不会出现,因此我创建了一个名为Vibrator的搜索查询,并复制了振动器类别中的URL,


0

我也有这个问题。

要管理产品并选择所有产品,然后从网格上方的下拉菜单中执行“更新属性”。在“更新属性”屏幕中,移至“网站”选项卡,然后通过选中“将产品添加到网站”下的复选框,将其与适当的网站重新关联。

  • 该解决方案对我有用,但实际上我有成千上万种产品,这需要几天的时间。还有另一种方法可以执行此操作,也可以使用数据库命令来执行此操作吗?谢谢

欢迎来到MSE。您可以添加新问题,该部分仅用于发布答案。希望对您
有所

-5

我认为您除了遵循以上所有评论之外,还请遵循以下几点:

  1. 首先确保您有最大执行时间,要么在index.php中编写,要么 ini_set('max_execution_time', 1800)在php.ini中设置max_execution_time= 1600
  2. 增加内存限制 ini_set('memory_limit','512M')或在php.ini中设置memory_limit=16M

16M如何表示增加... Magento是256 / 512M ...垃圾邮件响应?
FlorinelChis

抱歉,编辑了它。
magegaga.com 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.