Magento搜索返回0结果,尽管产品启用和适当的可见性

时间:2011-10-10 15:13:19

标签: php search magento magento-1.5

我正在使用Magento 1.5.1而且突然之间,搜索结果停止了返回。我在http://www.optimiseblog.co.uk/magento-catalog-search-broken-not-working/找到了一个对我有用的修复程序。

真正的踢球者是在不超过2或3天后,该解决方案停止工作,现在没有返回任何结果。我搜索了每个可能与远程相关的Google搜索结果,但没有发现其他任何可以解决此问题的结果。

我的产品已启用,可见性设置为搜索或编目/搜索产品,我已刷新缓存并重新编制索引多次。我真的可以使用一些帮助。提前谢谢。

3 个答案:

答案 0 :(得分:5)

bleacherbum17(OP)已经自我回答了这个问题。

引用:

  

实际上,我想我只是想通了。我发誓我曾尝试过这个   之前,但这次它奏效了。我所要做的就是去索引   管理然后刷新任何需要它,然后选择全部 - >重建。   之后,转到缓存管理 - >选择全部 - >刷新。然后冲洗   两个缓存。出于某种原因,这有效。

     

我认为这与此有关   实际上刷新所有索引和缓存,无论他们是否   状态表明它是否需要。我现在甚至有索引禁用   我正在构建网站,但选择所有并刷新它们,   然后清空缓存工作。

注意:这绝对是OK to self-answer你自己的问题。请将其作为真实答案发布,但在问题或评论中。发布真实答案有助于使“未答复”列表更加清晰(避免让其他人浪费时间)。谢谢。

答案 1 :(得分:3)

我在Magento 1.8.1上的搜索问题上没有返回任何产品,并通过设置' is_anchor'来解决它。在默认类别(ID 2)上为true,然后重新编制类别产品索引。

在幕后,查询返回的搜索结果数量大致如下:

SELECT COUNT(DISTINCT e.entity_id) FROM `catalog_product_flat_1` AS `e`  
INNER JOIN `catalogsearch_result` AS `search_result` 
  ON search_result.product_id=e.entity_id 
  AND search_result.query_id='11'  
INNER JOIN `catalog_category_product_index` AS `cat_index` 
  ON cat_index.product_id=e.entity_id 
  AND cat_index.store_id='1' 
  AND cat_index.visibility IN(3, 4) 
  AND cat_index.category_id = '2';

这是在catalog_category_product_index上的连接,其中category_id = 2阻止了结果。该类别未包括在索引中。

使类别成为锚点并重新索引修复了问题。

答案 2 :(得分:0)

当存在缓存的搜索字词时,也会发生这种情况。如果清除缓存和重建/刷新索引不起作用,请尝试删除搜索条件。如果您依赖搜索字词来返回搜索结果,则会破坏该功能,但如果您不这样做,那么就可以了。

我在构建自定义索引和使用SOLR时多次遇到此问题,其中Magento仍在缓存搜索结果,无论它应该还是不应该。我构建了一个客户索引器,以便对搜索术语进行精细控制,并为通用全文搜索提供显着的性能提升。