我试图查询更聪明的搜索结果,我在网上查询了Leveshtein和similiar_text,但我相信Leveshtein算法是最好的选择,我怎么能在我的查询中实现LEvenshtein的算法?我无法在magento上找到任何好的资源,甚至在attributeSelect上使用这个函数,这是我的初始代码。
function queryBuy($string){
$items = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('name')
->addFieldToFilter(array(
array('attribute'=>'name','like'=> "%".$string."%"),
));
我应该在Raw SQL中制作? magento有什么方法可供我使用吗?
答案 0 :(得分:0)
尝试这样
$items = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('name')
->addAttributeToFilter('name',
array('like'=> "% ".$string." %") //spaces on each side
);
您还可以查看this answer
答案 1 :(得分:0)
您可以使用
更改集合查询的任何部分$collection->getSelect()
示例强>
$collection->getSelect()->where("some field LIKE %expression%"