Вопрос по – Magento плоский продукт

5

при попытке включить и переиндексировать Product Flat Data - получить ошибку от magento

The Flat Catalog module has a limit of 64 filterable and/or sortable attributes. Currently there are 521 of them. Please reduce the number of filterable/sortable attributes in order to use this module.

Я не могу понять, что это значит и откуда magento получает эти значения. В атрибутах у меня есть только 321 различных атрибутов, поэтому откуда magento получает значение 521, используемое в настоящее время, и где оно берет ограничение для 64 из них ???

Thnx.

Любопытно - этот вопрос когда-либо решался или обходился? Laizer

Ваш Ответ

2   ответа
4

Ошибка, которую вы получаете, исходит из следующего файла:

/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Flat|Indexer.php

Похоже, что это ограничение установлено в файле каталога config.xml, который находится в следующем файле:

/app/code/core/Mage/Catalog/etc|config.xml

Выполнение поиска для & quot; max_index_count & quot; вы обнаружите, что это значение установлено на 64.

Я не уверен, почему этот лимит установлен, но я должен представить, что у них была веская причина установить его на 64. В среде РАЗРАБОТКИ (я бы посоветовал вам не пробовать это на своем живом сайте, прежде чем вы поймете, что может бывает) вы можете изменить это значение и посмотреть, что произойдет.

Количество имеющихся у вас индексов (521) определяется функцией getFlatIndexes в файле Indexer.php. Я предполагаю, что вы получаете 521, потому что у вас есть 321 + некоторые дополнительные, которые Magento использует по умолчанию.

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

thnx - постараюсь с этим параметром Sergey
5

МетодMage_Catalog_Model_Resource_Product_Flat_Indexer::prepareFlatTable() выбрасывает это исключение, когда ваш продукт имеет более

<global>
    <catalog>
        <product>
            <flat>
                <max_index_count>64</max_index_count>
            </flat>
        </product>
    </catalog>
</global>

индексов. Этот максимум обычно определяется вapp/code/core/Mage/Catalog/etc/config.xml и соответствует максимальному количеству 64 ключей, разрешенных по умолчанию для установок MySQL, до того как они

ERROR 1069: Too many keys specified. Max 64 keys allowed

Ваша проблема не в том, сколько атрибутов имеют ваши продукты, а в том, сколько ихfilterable and/or sortable (Кромеall ваши атрибуты, конечно).

следMage_Catalog_Model_Resource_Product_Flat_Indexer::getFlatIndexes() чтобы узнать, как Magento достигает 521 индекса.

Для быстрой проверки вы также можете взглянуть наcatalog_eav_attribute таблицы и проверьте, сколько атрибутов фильтруется (is_filterable = 1) и / или сортируются (used_for_sort_by = 1)

thnx - попытается изменить параметры mysql и оптимизировать атрибуты Sergey

Похожие вопросы