2012-05-10 17 views
5

cuando se trata de activar y indexar producto plano de datos - obtener el error de MagentoMagento producto plano

El módulo Catálogo plana tiene un límite de 64 filtrables y/o se pueden ordenar atributos. Actualmente hay 521 de ellos. Por favor, reduzca el número de los atributos filtrables/clasificables para usar este módulo.

No puedo entender lo que esto significa y de dónde obtiene magento estos valores. En atributos, tengo solo 321 atributos diferentes, por lo que desde donde magento se obtiene el valor de 521 actualmente utilizado y donde se necesita límite para 64 de ellos ???

thnx.

+0

curioso - fue este problema cada vez resuelto o trabajado en torno ? – Laizer

Respuesta

5

El método Mage_Catalog_Model_Resource_Product_Flat_Indexer::prepareFlatTable() es tirar esta excepción, cuando su producto tiene más de

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

índices. Este máximo por lo general se define en app/code/core/Mage/Catalog/etc/config.xml y coincide con el número máximo de 64 teclas permitido por las instalaciones de MySQL por defecto, antes de que el error con

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

Su problema no es la cantidad de atributos de sus productos tienen, pero ¿cuántos de ellos son filtrable y/o ordenable (excepto todos sus atributos son, por supuesto).

Trace Mage_Catalog_Model_Resource_Product_Flat_Indexer::getFlatIndexes() para descubrir cómo Magento alcanza un total de 521 índices.

Para una comprobación rápida también se puede echar un vistazo a su mesa catalog_eav_attribute y comprobar cuántos atributos son filtrables (is_filterable = 1) y/o clasificable (used_for_sort_by = 1)

+0

thnx - intentará cambiar los parámetros mysql y optimizar los atributos – Kudja

4

El error que está recibiendo está llegando desde el siguiente archivo:

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

parece que este límite se establece en el archivo config.xml catálogo que se encuentra en el siguiente archivo:

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

Hacer una búsqueda de "max_index_count" encontrará que este valor está establecido en 64.

No estoy seguro de por qué este límite está en su lugar, pero tengo que imaginar que tenían una buena razón para establecerlo en 64. En un entorno de DESARROLLO (le sugiero que no intente esto en su sitio en vivo antes entiendes lo que podría pasar) podrías cambiar este valor y ver qué pasa.

La cantidad de índices que tiene (el 521) proviene de la función getFlatIndexes en el archivo Indexer.php. Supongo que llegarás al 521 porque tienes tus 321 + algunas adicionales que Magento usa de forma predeterminada.

Si tuviera que adivinar, este límite se establece para evitar que las tablas de catálogo planas se vuelvan demasiado grandes horizontalmente. Supongo que hay un problema de velocidad cuando la mesa se hace demasiado grande.

+0

thnx - intentará evaluar con este parámetro – Kudja

Cuestiones relacionadas