如何为全文搜索编写流畅的查询?

时间:2013-06-11 20:13:11

标签: sql laravel full-text-search laravel-3

我需要在Laravel 3.0中为全文搜索编写流畅的查询。搜索查询就像这样

SELECT * FROM posts WHERE MATCH (tags) AGAINST ('Lorem Ipsum Dolor Sit Amet');

我一直在使用Raw查询来执行此操作,但原始查询的结果无法分页。 谁能告诉我为这个查询写一个流畅的查询的正确方法?

2 个答案:

答案 0 :(得分:2)

也许试试这个.... ??

public static function find_tags($searchtags, $take = 20)
{
    $results = Posts::raw_where("match (`tags`) against (?)", array($searchtags))
        ->take($take)
        ->get();

    return $results;
}

或者只是......

  $searchtags = "Lorem ipsum blah";
  $results = Posts::raw_where("match (`tags`) against (?)", array($searchtags))
        ->paginate(10);

我只是把它拉出来,但现在无法测试......不是在我的服务器上......

答案 1 :(得分:0)

实际上,您不需要执行原始select语句,所有必须在原始查询中写入的是where()语句。所以为什么你不尝试这样的东西,我目前在本地服务器上遇到了一些问题,所以我不能自己测试,但这应该有效。

// If you're using laravel models 
Posts::where_raw(sprintf("MATCH (tags) AGAINST ('%s')", $search))->paginate(10);

where_raw是laravel的未记录函数之一:D,在使用原始查询时也要记住,转义是,所以要小心。

相关问题