magento - быстрый поиск возвращает все продукты - PullRequest
6 голосов
/ 03 марта 2011

После обновления с 1.4 до 1.5 быстрый поиск возвращает все товары. Расширенный поиск работает просто отлично. Я очистил кеш и переиндексировал все, но все еще ничего. Есть идеи почему?

В поиске также не применяется минимальная длина запроса, установленная в админке (то есть я могу ничего не вводить и все равно показывать все). Переключение между поиском LIKE или FULLTEXT, похоже, ничего не дает.

Я видел это Поиск Magento возвращает все продукты , но все мои плагины обновлены (и у меня нет поисковых плагинов).

Ответы [ 5 ]

15 голосов
/ 10 июля 2012

Я боролся за это в течение нескольких дней, оказалось, что блок catalogsearch / layer - это то, что в конечном итоге вызывает поисковая система и сохраняет результаты в таблице catalogsearch_results.

Результаты поискаБлок list - это простой запрос к коллекции продуктов, объединенный с таблицей catalogsearch_results в столбце product_id (и фильтром LIKE или FULLTEXT).

Итак, одним словом, в одном из макетовXML-файлы (или ваш local.xml) убедитесь, что у вас есть этот код:

<catalogsearch_result_index>
    <reference name="left">
      <block type="catalogsearch/layer" name="catalogsearch.leftnav" template="catalog/layer/view.phtml"/>
    </reference>
</catalogsearch_result_index>

Конечно, вы можете поместить его в любой другой блок (не только left ), но убедитесь, что он естьссылка где-то в дескрипторе перед блоком catalogsearch / result (который является псевдонимом "search.result" в XML).

Если вы удалили навигацию по слоям с помощью , удалите, вам нужно будет использовать другое имя для блока (вместо «catalogsearch.leftnav").

Если вам нужно скрыть его даже со страницы результатов поиска,p на него есть ссылки в XML, но скрыть это с помощью CSS:

.block-layered-nav {
    display: none;
}

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

8 голосов
/ 21 апреля 2013

Я исправил проблему, отредактировав приложение / code / core / Mage / CatalogSearch / Block Result.php

Раскомментируйте строки 149 и 150

$this->getListBlock()
           ->setCollection($this->_getProductCollection());

И измените строку 172 с:

$this->_productCollection = $this->getListBlock()->getLoadedProductCollection();

до:

$this->_productCollection = Mage::getSingleton('catalogsearch/layer')->getProductCollection();
2 голосов
/ 28 июля 2011

Пожалуйста, перейдите по этой ссылке

http://www.learnmagento.org/magento-bug-fixes/magento-search-showing-all-products/

Если ваш поисковый запрос Magento индексирует все продукты на странице результатов поиска и фильтр поиска работает не так, как вам нужно, то вот решение:

Перейти в папку с шаблонами, app/design/frontend/default/your-theme/ Здесь вы найдете папку с именем / template /. Внутри будет другая папка, /catalogsearch/

Просто переименуйте его в /catalogsearch.bak/

Теперь перейдите к app/design/frontend/base/template/catalogsearch/. Скопируйте эту папку и скопируйте ее в app/design/frontend/default/your-theme/template/

Также скопируйте catalogsearch.xml с app/design/frontend/base/layout/ to app/design/frontend/default/default/layout/

2 голосов
/ 11 марта 2011

Используете ли вы 2-колоночный макет с многоуровневыми результатами поиска ... catalog / layer / view.phtml? Когда я переключился на макет с 1 столбцом и удалил многоуровневую навигацию, я заметил, что результаты возвращали все продукты, не соответствующие результатам моего поискового запроса.

0 голосов
/ 21 сентября 2011

Я сталкивался с этой проблемой сегодня, возможно, причиной не была ваша проблема, но мое расширение Aitoc Layered Navigation Pro требовало обновления.

Я мог видеть, что многоуровневая навигация показала правильные фильтры, но продукты были неправильными, как только я щелкнул по фильтру, он исправил себя.

Проблема с Aitoc заключается в том, что если вы приобрели расширение более 6 месяцев назад, вам придется заплатить за обновление.

Это чертовски неуклюже, но как срочное быстрое исправление я просто вызвал adj_nav_make_request (); Функция javascript после загрузки страницы для обновления списка продуктов.

Надеюсь, это кому-нибудь поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...