Documentation Index
Fetch the complete documentation index at: https://www.meilisearch.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
This guide walks you through setting up Meilisearch with PHP.
Prerequisites
1. Install the SDK
composer require meilisearch/meilisearch-php
2. Connect to Meilisearch
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Meilisearch\Client;
$client = new Client(
getenv('MEILISEARCH_URL'),
getenv('MEILISEARCH_KEY')
);
Set your environment variables:export MEILISEARCH_URL="https://your-instance.meilisearch.io" # or http://localhost:7700
export MEILISEARCH_KEY="your_api_key"
Get a free Cloud instance →
3. Add documents
$movies = [
['id' => 1, 'title' => 'The Matrix', 'genres' => ['Action', 'Sci-Fi'], 'year' => 1999],
['id' => 2, 'title' => 'Inception', 'genres' => ['Action', 'Thriller'], 'year' => 2010],
['id' => 3, 'title' => 'Interstellar', 'genres' => ['Drama', 'Sci-Fi'], 'year' => 2014]
];
// Add documents to the 'movies' index
$task = $client->index('movies')->addDocuments($movies);
// Wait for indexing to complete
$client->waitForTask($task['taskUid']);
4. Search
$results = $client->index('movies')->search('matrix');
print_r($results->getHits());
// [['id' => 1, 'title' => 'The Matrix', 'genres' => ['Action', 'Sci-Fi'], 'year' => 1999]]
5. Search with filters
First, configure filterable attributes:
$client->index('movies')->updateFilterableAttributes(['genres', 'year']);
Then search with filters:
$results = $client->index('movies')->search('', [
'filter' => 'genres = "Sci-Fi" AND year > 2000'
]);
Full example
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Meilisearch\Client;
$client = new Client(
getenv('MEILISEARCH_URL'),
getenv('MEILISEARCH_KEY')
);
// Add documents
$movies = [
['id' => 1, 'title' => 'The Matrix', 'genres' => ['Action', 'Sci-Fi'], 'year' => 1999],
['id' => 2, 'title' => 'Inception', 'genres' => ['Action', 'Thriller'], 'year' => 2010],
['id' => 3, 'title' => 'Interstellar', 'genres' => ['Drama', 'Sci-Fi'], 'year' => 2014]
];
$task = $client->index('movies')->addDocuments($movies);
$client->waitForTask($task['taskUid']);
// Search
$results = $client->index('movies')->search('inter');
print_r($results->getHits());
Laravel integration
For Laravel applications, use Laravel Scout with the Meilisearch driver:
composer require laravel/scout
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
Configure in your .env:
SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=https://your-instance.meilisearch.io
MEILISEARCH_KEY=your_api_key
See the full Laravel Scout guide →
Next steps
Laravel Scout
Full Laravel integration guide
Full-text search
Configure ranking and relevancy
Filtering
Add filters and facets
API reference
Explore all search parameters
Resources