在Magento 1.7中使用Kanavan Autosearch进行反向名称搜索

在Magento 1.7中使用Kanavan Autosearch进行反向名称搜索,magento,autocomplete,search-engine,Magento,Autocomplete,Search Engine,我正在为magento1.7使用karavan自动搜索扩展。我想修改搜索技术。在这种搜索技术中,如果我们提供完整或部分的名称,搜索引擎就可以完美地工作。但我希望它适用于反向名称。我的意思是,如果确切的名称是“测试产品”,那么如果我使用“产品测试”,那么结果将在下拉产品列表中显示相同的产品,现在是空的。我调试了它,发现这个搜索引擎也使用了magento默认搜索技术。 任何想法都可以接受,请帮帮我。。 提前感谢。Karavan extension使用默认的Magento搜索模型作为主干 app\co

我正在为magento1.7使用karavan自动搜索扩展。我想修改搜索技术。在这种搜索技术中,如果我们提供完整或部分的名称,搜索引擎就可以完美地工作。但我希望它适用于反向名称。我的意思是,如果确切的名称是“测试产品”,那么如果我使用“产品测试”,那么结果将在下拉产品列表中显示相同的产品,现在是空的。我调试了它,发现这个搜索引擎也使用了magento默认搜索技术。 任何想法都可以接受,请帮帮我。。
提前感谢。

Karavan extension使用默认的Magento搜索模型作为主干

app\code\local\Mage\CatalogSearch\Model\Resource\Search\collection.php

查找方法_getSearchEntityIdsSql(),并根据需要进行更改

$words = array();
    if(str_word_count($this->_searchQuery)>1){
            $words = explode(" ",$this->_searchQuery);
    }
    $ifValueId = $this->getConnection()->getCheckSql('t2.value_id > 0', 't2.value', 't1.value');
    foreach ($tables as $table => $attributeIds) {
        foreach($words as $word){
            $selects[] = $this->getConnection()->select()
                        ->from(array('t1' => $table), 'entity_id')
                        ->joinLeft(
                            array('t2' => $table),
                            $this->getConnection()->quoteInto(
                                't1.entity_id = t2.entity_id AND t1.attribute_id = t2.attribute_id AND t2.store_id = ?',
                                $this->getStoreId()),
                            array()
                        )
                    ->where('t1.attribute_id IN (?)', $attributeIds)
                    ->where('t1.store_id = ?', 0)
                    ->where($resHelper->getCILike($ifValueId, $word, $likeOptions));
        }
        if ($selects) {
            $likeCond = '(' . join(' and ', $selects) . ')';
        }

    }
有些人喜欢这样

注意:不要覆盖基类