我正在使用karavan autosearch extention for magento1.7。我想修改搜索技术。在该搜索技术中,如果我们提供完整或部分名称,搜索引擎将完美运行。但我希望它适用于反向名称。我的意思是如果确切的名称是'测试产品',那么如果我使用'产品测试',那么结果将在下拉产品列表中显示相同的产品,现在变成空的。我调试它,发现这个搜索引擎也使用magento默认搜索技术。 任何一种想法都是可以接受的。请帮帮我.. 提前谢谢..
答案 0 :(得分:1)
Karavan扩展使用默认的Magento搜索模型作为主干
应用\代码\本地\法师\ CatalogSearch \模型\资源\搜索\ 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) . ')';
}
}
有些像这样。
注意:DOnt会覆盖BAse Class