gpt4 book ai didi

mysql - Laravel MySQL 搜索。允许用户进行自定义 bool 搜索

转载 作者:可可西里 更新时间:2023-11-01 08:24:10 26 4
gpt4 key购买 nike

客户对我正在做的员工管理项目提出了这个新要求,以允许他们的用户进行自定义 bool 搜索。

基本上允许他们使用:AND、OR、NOT、括号和引号。

实现它的最佳方法是什么?我检查了 mysql,它们使用不同的语法。

这是测试场景:

要求:寻找来自新加坡的具有精英或老兵等级的魔法师或野蛮人

bool 字符串:("Magician"OR "Barbarian") AND (Elite OR "Veteran Level") and Singaporean

这是我将考虑修改的代码之一,我从 Pure PHP based boolean search for strings 获得的

function booleanSearch($content, $search) {
$criteria = str_getcsv($search, ' ');

while ($criteria) {
$not = false;
$q = array_shift($criteria);

if (substr($q, 0, 2) === '-"') {
$not = true;

while (substr($q, -1) != '"') {
$q .= " " . array_shift($criteria);
}

$q = substr($q, 2, -1);
}
else if (substr($q, 0, 1) === '-' && strpos($q, ' ') === false) {
$not = true;
$q = substr($q, 1);
}

$found = strpos($content, $q) !== false;

if ($found === $not) {
return false;
}
}

return true;
}

最佳答案

您只需要一个查询生成器实现。根据您的描述,推出自己的包将是微不足道的,否则,有许多包可以让生活更轻松。 Spatie 的查询生成器运行良好:https://github.com/spatie/laravel-query-builder

关于mysql - Laravel MySQL 搜索。允许用户进行自定义 bool 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50196980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com