Skip to the content.

Getting Started with Elasticsearch PHP Client

This guide will help you get started with the elasticsearch-php-client library.

Installation

The library can be installed via Composer:

composer require zvonchuk/elasticsearch-php-client

Requirements

Basic Setup

First, require the Composer autoloader and initialize the client:

<?php
require 'vendor/autoload.php';

use Zvonchuk\Elastic\Client;

// Connect to a single Elasticsearch node
$client = Client::create(['localhost:9200']);

// Connect to multiple nodes
$client = Client::create([
    'elasticsearch1:9200',
    'elasticsearch2:9200',
    'elasticsearch3:9200'
]);

Your First Query

Let’s perform a simple search query:

<?php
use Zvonchuk\Elastic\Core\SearchRequest;
use Zvonchuk\Elastic\Search\Builder\SearchSourceBuilder;
use Zvonchuk\Elastic\Query\QueryBuilders;

// Create a search source with a match query
$searchSource = new SearchSourceBuilder();
$searchSource->query(
    QueryBuilders::matchQuery('content', 'elasticsearch')
);

// Create and execute the search request
$request = new SearchRequest('my_index');
$request->source($searchSource);
$response = $client->search($request);

// Process the search results
echo "Found {$response->getTotal()} documents\n";
foreach ($response->hits() as $hit) {
    echo "Document ID: {$hit->id}, Score: {$hit->score}\n";
    print_r($hit->source);
}

Next Steps