Magento产品数量不多的话这点体现不严重。但是如果产品数据在10W以上(个人经验判断),建立索引常常要一小时多或者更多。
特此研究了下,知道Magento在Index Management这边建立索引机制 的处理步骤有:
1)目录和导航栏的产品属性的索引建立
2)产品价格的索引
3)目录URL和产品URL的建立
4)重组产品的EAV数据
5)重组目录的EAV数据
6)目录和产品之前的关联索引
7)目录产品的全文搜索
8)产品库存、产品状态
(有不足的地方还原指正 ^_^。)
Magento索引过程里的这八点,我主要针对第七点来优化。具体办法是,建立脚本程序,替代Magento的这部分工作内容。
<?php require_once 'app/Mage.php'; umask(0); Mage::app( "default" ); Mage::log("开始建立搜索索引:".date("d/m/y h:i:s")); $sql = "TRUNCATE catalogsearch_fulltext;"; $mysqli = Mage::getSingleton('core/resource')->getConnection('core_write'); $mysqli->query($sql); $process = Mage::getModel('index/process')->load(7); $process->reindexAll(); Mage::log("搜索索引建立完成: " .date("d/m/y h:i:s")); ?>
虽然这办法对Magento Index Management这边的速度有所帮助,但是效果有限。。
http://www.magentocommerce.com/magento-connect/sonassi-fast-search-index.html
http://www.magentocommerce.com/magento-connect/dn-d-patch-index-url-1.html