Laravel + Mongodb全文搜索

时间:2015-02-03 12:26:23

标签: mongodb laravel

如何在Laravel中进行mongodb文本搜索工作?请建议。

我可以在终端上做到 -

db.coupons.find( { $text: { $search: "Search me here" } } )

但不确定如何在laravel中完成。

3 个答案:

答案 0 :(得分:1)

要使用laravel mongodb(使用jenssegers / laravel-mongodb)进行搜索,首先需要创建一个索引。例如:private int pointer =0; // define it as an attribute (global variable) protected void buton_click(){ option[pointer]=optionText; pointer++; // to be ready for the next index } ,其中“subject”是要进行搜索的文本的属性。

然后你可以在mongodb中尝试一个查询:db.articles.createIndex( { "subject" : "text" } )并以这种方式执行laravel:

db.articles.find( { $text: { $search: "coffee" } } )

如果您想按短语搜索,则需要使用引号。在mongodb:$word = "coffee"; $response = Article::whereRaw(array('$text'=>array('$search'=> $word)))->get(); 和laravel:

db.articles.find( { $text: { $search: "\"coffee shop\"" } } )

答案 1 :(得分:0)

在您的composer.json中添加jenssegers/laravel-mongodb包并通过composer update安装。访问添加链接,在那里您将获得处理mongodb-laravel连接的良好来源。

你有没有试过像:

$users = User::with(array('posts' => function($query)
{
    $query->where('title', 'like', '%first%');

}))->get();

看看是否有帮助。

答案 2 :(得分:0)

由于您使用https://github.com/jenssegers/laravel-mongodb,根据您的代码,您可以说

$ coupons =优惠券::其中(&#39; $ text&#39; =&gt; [&#39; $ search&#39; =&gt;&#39;在此搜索我&#39;]); < / p>

})) - &GT;得到();