Поиск в Magento возвращает 0 результатов, несмотря на то, что продукты включены и правильная видимость - PullRequest
2 голосов
/ 10 октября 2011

Я использую Magento 1.5.1 и вдруг результаты поиска перестали возвращаться.Я нашел исправление, которое работало для меня в течение нескольких дней в http://www.optimiseblog.co.uk/magento-catalog-search-broken-not-working/.

. Настоящим кикером является то, что через не более 2 или 3 дней решение THAT перестало работать и теперь не возвращает результатов.Я просмотрел все результаты поиска Google, которые могут иметь отношение к удаленному сайту, и не нашел ничего другого, что близко подходит к решению этой проблемы.

Мои продукты включены, видимость настроена на поиск или каталог / поиск дляпродукты, и я обновил кэш и переиндексировал несколько раз.Я мог бы действительно помочь с этим.Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 11 октября 2011

bleacherbum17 (OP) уже самостоятельно ответил на вопрос.

Цитата:

На самом деле, я думаю, я только что понял это.Клянусь, я пробовал это раньше, но на этот раз это сработало.Все, что мне нужно было сделать, это перейти к управлению индексами, затем обновить все, что было нужно, затем выбрать «Все» -> «Перестроить».После этого перейдите в «Управление кэшем» -> «Выбрать все» -> «Обновить».Затем очистите оба кэша.По какой-то причине это сработало.

Я думаю, что это связано с фактическим обновлением всех индексов и кэшей, независимо от того, говорит их статус о необходимости или нет.У меня даже отключено индексирование, пока я создаю сайт, но выбрал все и обновил их, затем очистил кеши.

Примечание: это абсолютно ОК для самостоятельнойответ на свой вопрос.Пожалуйста, оставьте это как реальный ответ, но , а не в вопросе или комментарии.Публикация в виде реального ответа помогает сохранить список «без ответа» более четким (избегая того, чтобы другие люди тратили свое время).Спасибо.

3 голосов
/ 17 апреля 2014

У меня не было продуктов, возвращенных при поиске, в Magento 1.8.1, и я решил ее, установив для is_anchor значение true в категории по умолчанию (id 2), а затем переиндексировав категорию продуктов.

Под капотом количество результатов поиска возвращается по запросу, примерно так:

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, которое блокировало результаты.Эта категория не была включена в индекс.

Устранение проблемы с помощью привязки категории и переиндексации.

0 голосов
/ 20 августа 2015

Это также может произойти при наличии кэшированных поисковых запросов.Если очистка кэшей и перестроение / обновление индексов не работают, попробуйте удалить условия поиска.Если вы используете условия поиска для возврата результатов поиска, это нарушит эту функциональность, но если вы этого не сделаете, то все будет в порядке.

Я сталкивался с этой проблемой несколько раз при создании пользовательских индексов ииспользуя SOLR, где Magento все еще кэширует результаты поиска, независимо от того, следует или нет.Я создал индексатор клиентов, чтобы обеспечить детальный контроль над поисковыми терминами, а также значительный выигрыш в производительности для общих полнотекстовых поисков.

...