Questions tagged «indexing»

有关Magento索引器的问题。这包括平面目录索引。对于MySQL索引,请改用“ mysql -indexes”标签。

1
如何更改catalog_product_flat列类型
我管理的网站要求价格必须有5位小数。我继续修改了至少十二个文件/表,以实现此目的。但是(因为总是有一个but)似乎有问题catalog_product_flat_X。 让我解释一下:对于最前面的价格,大多数时候都归结为调用Mage_Catalog_Model_Product->getPrice(),据我所知,它将在平面表中查找价格(如果启用了平面表)。问题在于数据的重新索引编制。 如果我的平面桌具有以下格式的价格,则DECIMAL(12,5)点击“ Reindex平面数据”行上的“ Reindex”链接会将ALTER平面表放回DECIMAL(12,4)。 在搜索了相当长的时间后,我遇到了一个 app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php 名为的函数prepareFlatTable($storeId)。然后,此函数调用convertOldColumnDefinition($column)平面表的每一列(在这种情况下)。 最后,看该功能时 app/code/core/Mage/Catalog/Model/Resource/Helper/Abstract.php 它似乎是每一个转换decimal,并numeric像这样: case 'decimal': case 'numeric': $length = $proposedLength; $type = Varien_Db_Ddl_Table::TYPE_DECIMAL; break; 其中$proposedLength是这样的结果: $definition = trim($column['type']); if (!preg_match('/([^(]*)(\\((.*)\\))?/', $definition, $matches)) { throw Mage::exception( 'Mage_Core', Mage::helper('core')->__("Wrong old style column type definition: {$definition}.") ); } $proposedLength = (isset($matches[3]) && strlen($matches[3])) ? $matches[3] …

1
为什么magento会在每次结帐时对索引重新定价?
如果您在Mage_CatalogInventory_Model_Observer :: reindexQuoteInventory()中查看,它将调用以下行: Mage::getResourceSingleton('catalog/product_indexer_price')->reindexProductIds($productIds); 在reindexQuoteInventory()被称为对下列事项: sales_model_service_quote_submit_success checkout_submit_all_after(通过Mage_CatalogInventory_Model_Observer::checkoutAllSubmitAfter()) 这被称为导致锁定大量购买的繁忙站点上的问题的问题之一。 我的问题是: 为什么每次结帐时都会重新索引产品的价格? 删除它有什么影响? 如果确定将其用于目录规则,那将只是非常具体的规则?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.