2012-05-10 12 views
5

etkinleştirmek ve Ürün Düz Verilerini reindex çalışırken - alma hatasını magentoMagento yassı mamul

Düz Katalog modülü 64 Filtrelenebilir ve/veya sıralanabilir özelliklerin bir sınırı vardır. Halen 521 tanesi var. Bu modülü kullanmak için lütfen filtrelenebilir/sortable özelliklerinin sayısını azaltın.

Bunun ne anlama geldiğini ve magento'nun bu değerleri nereden aldığını anlayamıyorum. Özniteliklerimde sadece 321 farklı özniteliğim var, bu sayede magento şu an kullanılan 521 değerini alıyor ve bunların 64 tanesi sınırlıyor.

thnx.

+0

Meraklı - Bu sorun şimdiye kadar çözülmüş veya çevresinde çalıştı ? – Laizer

cevap

5

ürününüzün fazla

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

dizinleri sahip olduğunda Mage_Catalog_Model_Resource_Product_Flat_Indexer::prepareFlatTable(), bu istisna atıyor yöntemi. Bu maksimum genellikle app/code/core/Mage/Catalog/etc/config.xml tanımlanan ve

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

Kişisel sorunla onlar hata önceki varsayılan mySQL kurulumları tarafından izin 64 maksimum anahtar sayısı, kibrit kaç ürünlerinizi var niteliklerini, ama bunların kaç vardır değil filtre edilebilir ve/veya değişken (hariç öznitelikleriniz elbette). Magento'nun toplam 521 dizinine nasıl ulaştığını öğrenmek için Adres Mage_Catalog_Model_Resource_Product_Flat_Indexer::getFlatIndexes().Hızlı bir kontrol de (is_filterable = 1) sizin catalog_eav_attribute masada bir göz ve filtrelenebilirdir kaç nitelikleri kontrol edebilir ve/veya sıralanabilir (used_for_sort_by = 1) için

+0

thnx - mysql paramlarını değiştirmeye ve öznitelikleri optimize etmeye çalışacak – Kudja

4
Eğer alıyorsanız hata aşağıdaki dosyadan geliyor

:

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

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

için bir arama yapmak: limit aşağıdaki dosyada bulunan Katalog config.xml dosyasındaki ayarlandığını görünür "max_index_count" bu değerin 64 olarak ayarlandığını göreceksiniz.

Bu sınırın neden uygulandığından emin değilim, ancak bunların 64 olarak ayarlanması için iyi bir nedenleri olduğunu hayal etmem gerekiyor. DEVELOPMENT ortamında (bunu daha önce canlı sitenizde denemenizi tavsiye ederim) ne olabileceğini anlıyorsun) bu değeri değiştirebilir ve ne olduğunu görebilirsin.

Sahip olduğunuz dizinlerin sayısı (521), Indexer.php dosyasındaki getFlatIndexes işlevinden geliyor. Sanırım 521'e gideceksin, çünkü Magento'nun varsayılan olarak kullandığı 321 + 'dan başka eklerin var.

Tahmin etmem gerekirse, düz katalog tablolarının yatay olarak çok fazla genişlemesini önlemek için bu sınır uygulanır. Tablo çok büyük olduğunda bir hız sorunu olduğunu tahmin ediyorum.

+0

thnx - bu params ile denemeye çalışacak – Kudja