实现smiliar_text或Levenshtein查询

时间:2017-10-27 22:36:34

标签: php mysql magento magento-1.9

我试图查询更聪明的搜索结果,我在网上查询了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有什么方法可供我使用吗?

2 个答案:

答案 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%"