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


Magento search returning 0 results, despite products enabled and proper visibility

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

真正的问题是,在不超过2或3天后,该解决方案停止工作,现在没有返回任何结果。我已经搜索了每一个可能与此相关的谷歌搜索结果,但没有找到任何其他接近解决这个问题的东西。

我的产品被启用,可见性被设置为搜索或目录/搜索产品,并且我已经刷新了缓存并重新索引了多次。我真的需要你的帮助。

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

:

事实上,我想我刚刚弄明白了。我发誓我试过这个以前,但这次成功了。我要做的就是去索引然后刷新任何需要的,然后选择All->Rebuild。之后,进入缓存管理->全选->刷新。然后冲洗两个缓存。出于某种原因,这种方法奏效了。

我认为这与……有关实际上是刷新所有索引和缓存,不管它们是否地位决定了它是否需要。我现在甚至禁用了索引当我在建立网站的时候,但是选择所有的并刷新它们,然后清空缓存。

注意:完全可以自己回答问题。请把它作为一个真实的答案,但不是在一个问题或评论。张贴真实的答案有助于保持"未答复"列表更清晰(避免让其他人浪费时间)。谢谢你。

我在Magento 1.8.1的搜索中没有返回产品的问题,并通过在默认类别(id 2)上设置'is_anchor'为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上的join,其中category_id = 2。这一类别不包括在指数中。

使类别成为锚并重新索引解决了这个问题。

当存在缓存搜索词时也可能发生这种情况。如果清除缓存和重建/刷新索引不起作用,请尝试删除搜索词。如果你依靠搜索词来返回搜索结果,这将破坏该功能,但如果你不这样做,那么它将是好的。

我在构建自定义索引和使用SOLR时遇到过这个问题好几次,Magento仍然缓存搜索结果,不管它应该还是不应该。我已经构建了一个客户索引器,以提供对搜索词的细粒度控制,以及对一般全文搜索的显著性能提升。