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::getInstance(['localhost:9200']);

// Connect to multiple nodes
$client = Client::getInstance([
    '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
$hits = $response->getHits();
$total = $response->getTotal();

echo "Found $total documents\n";
foreach ($hits as $hit) {
    echo "Document ID: {$hit['_id']}, Score: {$hit['_score']}\n";
    print_r($hit['_source']);
}

Next Steps