Laravel SQL查询-结果等待时间长

时间:2019-01-29 08:00:23

标签: laravel search bigdata phrase

我写了一个函数,在短语后面搜索数据库。 首先,我要查找包含该短语中所有单词的记录。其次,我要查找记录,其中包含给定短语中的任何单词。

public static function findTitleAll($fullTextWildcards) {
    return \App\Offers::select(...)->where('active', '=', '1')->where('payed', '=', '1')
                    ->where(function ($query) use ($fullTextWildcards) {
                        $query->orWhereRaw('MATCH (title) AGAINST ("' . $fullTextWildcards . '" IN BOOLEAN MODE)');
                    });
}

public static function titleAny($findTextWildcards) {
    return \App\Offers::select(...)->where('active', '=', '1')->where('payed', '=', '1')
                    ->where(function ($query) use ($findTextWildcards) {
                        foreach ($findTextWildcards as $value) {
                            $query->orWhere('title', 'like', "%" . $value . "%");
                        }
                    });
}

然后合并结果而无需重复$ result1-> merge($ result2)... e.t.c。

返回这样的结果需要很长时间。这不是一个有效的解决方案。我如何要求表格获得最相关的结果?该表目前有超过70,000条记录。

  1. 一个查询,查询包含给定短语中所有单词的商品。
  2. 从给定短语中查询具有任何单词的报价。

应注意有问题的字符串,例如:“ ASP / NET / C#(java开发人员)”此字符串具有特殊字符

0 个答案:

没有答案