Connect to Elasticsearch (Opensearch Service
In this tutorial, we are gonna install elasticsearch-php client and connect to Opensearch Service (Elasticsearch 7.10) on AWS Cloud.
Prerequisites
- You have already installed Elasticsearch 7.10 on Opensearch service with public access (internet), so we just go installing elasticsearch-php-client
- Using PHP 8.3.12 for elasticsearch-php client v7.11.0
- Installed Apache webserver
- Ubuntu 24.04
Summary steps
- Install composer on your local computer
- Install elasticsearch-php client v7.11.0
- Test connect to Elasticsearch 7.10
- Test create index
- Insert data
Let’s get started!
Install composer on your local computer
My workspace is under /var/www/html/elasticsearch-php
To install elasticsearch-php client, we need composer. Install it with the following command:
php -r "copy(' 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
After running above command, it creates a file named composer.phar. In the next step we will use composer.phar to install elasticsearch-php client.
Install elasticsearch-php client v7.11.0
We will use elasticsearch-php client v7.11.0 (not latest version), because our elasticsearch is v7.10.0. I am worried if using latest version of elasticsearch-php client, it will not work (backward compatibility) for elasticsearch v7.10.0.
In order to install elasticsearch-php client v7.11.0, the command is as follows:
php composer.phar require elasticsearch/elasticsearch:7.11.0

If you run ls -al, you will see vendor folder. The elasticsearch-php client is installed inside that folder.
Test connect to Elasticsearch 7.10
For your information, this is my elasticsearch 7.10 setup installed on Opensearch service:

Now, let’s focus on testing connecting to elasticsearch 7.10. Create a file named index.php in elasticsearch-php folder. Then paste this script:
<?php
require 'vendor/autoload.php';
use Elasticsearch\ClientBuilder;
$client = ClientBuilder::create()
->setHosts(['https://search-xxxx-elasticsearch-g44-xxxx.ap-southeast-1.es.amazonaws.com:443'])
->setBasicAuthentication('your elasticsearch username', 'your elasticsearch username')
->build();
$response = $client->info();
echo "<pre>";
var_dump($response);
?>
Explanation:
- Change setHosts value with your elasticsearch domain endpoint IPv4 (See above image)
- Change setBasicAuthentication values with your elasticsearch username, and password (this username, password you got from initial elasticsearch / opensearch service installation)
Run:
If the connection is success, then the output is like this:

Test create index
By this time, we have successfully connected to elasticsearch v7.10.0.
Now we are going to test creating an simple index.
Modify your index.php and paste this script:
<?php
require 'vendor/autoload.php';
use Elasticsearch\ClientBuilder;
$client = ClientBuilder::create()
->setHosts(['
->setBasicAuthentication('your elasticsearch username', 'your elasticsearch username')
->build();
$params = [
"index" => "test-elasticsearch-php"
];
$response = $client->indices()->create($params);
echo "<pre>";
print_r($response);
?>
Run again:
If succeed, the response is like this:

Check on kibana dashboard (provided by Opensearch service), go to Open Distro for Elasticsearch > Index Management, you will see test-elasticsearch-php is on there.

Great!, we have successfully created an index. Now let’s insert data in the next step.
Insert data
Modify your index.php, and paste in it:
<?php
require 'vendor/autoload.php';
use Elasticsearch\ClientBuilder;
$client = ClientBuilder::create()
->setHosts(['
->setBasicAuthentication('your elasticsearch username', 'your elasticsearch username')
->build();
$params = [
"index" => "test-elasticsearch-php",
"id" => "123",
"body" => [
"name" => "Moko",
"address" => "Jl. Greenstreet",
"create_date" => "2024-01-01 12:11:01"
]
];
$response = $client->index($params);
echo "<pre>";
print_r($response);
?>
Run:
It outputs:

If you see on kibana dashboard, it’s stored in index: test-elasticsearch-php

Related
Gaming Center
Berita Olahraga
Berita Olahraga
Anime Batch
News
Pelajaran Sekolah
Berita Terkini
Berita Terkini
Review Film
Gaming center adalah sebuah tempat atau fasilitas yang menyediakan berbagai perangkat dan layanan untuk bermain video game, baik di PC, konsol, maupun mesin arcade. Gaming center ini bisa dikunjungi oleh siapa saja yang ingin bermain game secara individu atau bersama teman-teman. Beberapa gaming center juga sering digunakan sebagai lokasi turnamen game atau esports.