如何加速magento 1.7系列

时间:2013-02-22 14:24:00

标签: performance magento search

我使用此代码对包含搜索字符串的数组进行自定义目录搜索:

$collection =    Mage::getModel('catalog/product')->getCollection()
            ->addAttributeToSelect('*')
        ->addAttributeToFilter('visibility', $visibility);

        foreach($searchNames as $searchName){
            $collection->addAttributeToFilter(array(
                    array('attribute'=> 'name','like' => '%'.$searchName.'%'),
                    array('attribute'=> 'search_field','like' => '%'.$searchName.'%'),
                    array('attribute'=> 'sku','like' => '%'.$searchName.'%')));
        }

当我得到~6k的结果时,搜索大约需要5秒钟。有没有办法加快速度? 也许我还没有找到一些性能调整。

我已经在表catalog_product_flat中为这些字段设置了索引,但没有变化。

1 个答案:

答案 0 :(得分:0)

索引不适用于namesearch_fieldsku属性的查询!因为LIKE值以通配符(%)开头,索引只能以常量开头才能工作。如果从LIKE值中删除前导%,您的查询将会加快。

我不明白你为什么要使用foreach?