levenify / levenify-bundle
在您的Symfony项目中实现更好的Levenshtein函数
dev-master
2020-04-25 15:18 UTC
Requires
- php: >=7.2.5
- doctrine/dbal: *
- doctrine/orm: *
- symfony/framework-bundle: *
This package is auto-updated.
Last update: 2024-09-28 21:11:10 UTC
README
在您的Symfony项目中实现更好的Levenshtein函数
如何安装Levenify
- 步骤 1 : 安装包
composer req levenify/levenify-bundle
- 步骤 2 : 使用命令设置您的数据库
bin/console levenify:install
- 步骤 3 : 设置您的config.yml
# app/config/config.yml doctrine: orm: dql: numeric_functions: levenshtein: Levenify\LevenifyBundle\ORM\Doctrine\DQL\Levenshtein levenshtein_ratio: Levenify\LevenifyBundle\ORM\Doctrine\DQL\LevenshteinRatio
如何使用Levenify
- 使用查询构建器
<?php public function getProductByName($searchString, $tolerance = 3) { $queryBuilder = $this->_em->createQueryBuilder() ->select('p') ->from('Product::class', 'p') ->where('LEVENSHTEIN(p.name, :searchString) <= :tolerance') ->setParameter('searchString', $searchString) ->setParameter('tolerance', $tolerance) ; return $queryBuilder->getQuery()->getResult(); } ?>
- 使用DQL
<?php public function getProductByName($searchString, $tolerance = 3) { $dqlString = ' SELECT product FROM Product::class p WHERE LEVENSHTEIN(p.name, :searchString) <= :tolerance '; $query = $this->_em->createQuery($dqlString) ->setParameter('searchString', $searchString) ->setParameter('tolerance', $tolerance) ; return $query->getResult(); } ?>
--- 问题:基本的Levenshtein函数和Levenify之间的区别是什么?
--- 回答:函数的第一个参数可以由多个单词组成!