-
Notifications
You must be signed in to change notification settings - Fork 98
Search
Clémentine Urquizar edited this page Jan 13, 2021
·
20 revisions
The search method returns a SearchResult
instance.
public function search($query, array $searchParams = [], array $options = [])
$query
: the query words.
$searchParams
: the search parameters handled by MeiliSearch.
$options
: options you can pass during the search. There are described in the next section.
Here are the different options you can pass in the $options
parameter.
-
raw
(default:false
): to get the raw results returned by MeiliSearch. Thesearch()
will return an array instead of a class instance.
$index->search('prince', [], [raw => true]);
-
customizeHits
: the callback that will be applied to thehits
array returned by MeiliSearch.
$index->search('prince', [], [
'transformHits' => function (array $hit) {
$hit['title'] = strtoupper($hit['title']);
return $hit;
},
]);
-
customizeFacetsDistribution
(WIP): the callback that will be applied to thefacetsDistribution
array returned by MeiliSearch.
- To remove some specifics hits in the results:
$response = $index->search('prince', [], [
'transformHits' => function (array $hit) {
if ('AMERICAN SNIPER' === strtoupper($hit['title'])) {
return $hit;
}
},
]);
- To make the title in upercase:
$index->search('prince', [], [
'transformHits' => function (array $hit) {
$hit['title'] = strtoupper($hit['title']);
return $hit;
},
]);
With filters
, both single and double quotes are supported.
// Enclosing with double quotes
$index->search('prince', ['filters' => "title = 'Le Petit Prince' OR author = 'J. R. R. Tolkien'"]);
// Enclosing with single quotes
$index->search('hobbit', ['filters' => 'title = "The Hitchhiker\'s Guide to the Galaxy" OR author = "J. R. R. Tolkien"']);