【问题标题】:Magento flat productMagento平板产品
【发布时间】:2012-05-10 14:30:21
【问题描述】:

尝试启用和重新索引产品平面数据时 - 从 magento 收到错误

平面目录模块有 64 个可过滤和/或可排序的限制 属性。目前有521个。请减少数量 可过滤/可排序的属性,以便使用此模块。

我无法理解这意味着什么以及 magento 从何处获得这些值。 在属性中,我只有 321 个不同的属性,所以 magento 从哪里获取当前使用的 521 的值以及其中 64 个的限制???

谢谢。

【问题讨论】:

  • 很好奇 - 这个问题有没有解决或解决过?

标签: magento


【解决方案1】:

当您的产品超过

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

索引。此最大值通常在app/code/core/Mage/Catalog/etc/config.xml 中定义,并且与默认 mySQL 安装允许的最大 64 个键数相匹配,在它们出现错误之前

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

您的问题不是您的产品有多少属性,而是其中有多少是可过滤和/或可排序的(当然,所有属性除外)。

跟踪 Mage_Catalog_Model_Resource_Product_Flat_Indexer::getFlatIndexes() 以了解 Magento 如何达到总共 521 个索引。

为了快速检查,您还可以查看 catalog_eav_attribute 表并检查有多少属性是可过滤的 (is_filterable = 1) 和/或可排序的 (used_for_sort_by = 1)

【讨论】:

【解决方案2】:

您收到的错误来自以下文件:

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

这个限制似乎是在目录 config.xml 文件中设置的,该文件位于以下文件中:

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

搜索“max_index_count”你会发现这个值被设置为64。

我不确定为什么会有这个限制,但我不得不想象他们有充分的理由将其设置为 64。在开发环境中(我建议您不要先在实际站点上尝试此操作)了解会发生什么)您可以更改此值并查看会发生什么。

您拥有的索引数(521)来自 Indexer.php 文件中的 getFlatIndexes 函数。我猜你是 521 因为你有你的 321 + Magento 默认使用的一些额外的。

如果我不得不猜测,这个限制是为了防止平面目录表在水平方向上变得太大。我猜当表格太大时会出现速度问题。

【讨论】:

猜你喜欢
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多