I want to do a full text search on the mongo database. This is my code in Service
public function search(array $params = [])
{
$search_query = $this->getFromArr($params, 'search_query');
$limit = $this->getFromArr($params, 'limit');
$videoList = $this->videos->findByPhase($search_query, $limit);
return $videoList;
}
This method in Repository
public function findByPhase($phase, $limit)
{
return $this->model->whereRaw(['$text' => ['$search' => $phase]])->paginate(intval($limit));
}
This is index in collection Videos on my db
> db.videos.getIndexes()
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "vod_app.videos"
},
{
"v" : 2,
"key" : {
"_fts" : "text",
"_ftsx" : 1
},
"name" : "recipe_full_text",
"weights" : {
"description" : 12,
"title" : 32
},
"ns" : "vod_app.videos",
"default_language" : "english",
"language_override" : "language",
"textIndexVersion" : 3
}
]
As a result, when searching, I find objects by fields but I can not do it like "Like" in mysql