• 0216 488 01 91
  • destek@sonsuzbilgi.com.tr

Doktor & Medikal Web Sitesi

Onlarca Doktor & Medikal Web sitesinden biri mutlaka size göre!

*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle


PHP'de GraphQL ile Elasticsearch ve Kibana Entegrasyonu

Adı : PHP'de GraphQL ile Elasticsearch ve Kibana Entegrasyonu

PHP'de GraphQL ile Elasticsearch ve Kibana Entegrasyonu

GraphQL, web ve mobil uygulamalarında kullanılan modern bir API sorgu dilidir. Elasticsearch, büyük miktarda veri depolama, arama ve analiz için kullanılan bir açık kaynaklı arama motorudur. Kibana ise Elasticsearch için bir görselleştirme aracıdır. Bu üç teknolojiyi birleştirerek, uygulamalarımızda büyük miktarda veri yönetimini ve analizini etkinleştirebiliriz.

Bu yazıda, PHP'de GraphQL ile Elasticsearch ve Kibana entegrasyonunu adım adım anlatacağız ve birkaç örnek vereceğiz.

Elasticsearch ve Kibana Yüklemesi

İlk önce, Elasticsearch ve Kibana'yı yüklememiz gerekiyor. Elasticsearch resmi web sitesinden indirilip kurulabilir. Kibana ise Elasticsearch de kullanılan mantıkla aynı şekilde kurulur. Aynen Elasticsearch’da olduğu gibi Kibana da resmi web sitesinde yer alan download linki kullanılarak indirilmeli ve kurulum işlemi tamamlanmalıdır.

Graphql Yüklemesi

GraphQL'in PHP'de kullanılabilmesi için, \"webonyx/graphql-php\" paketi yüklenmelidir.

composer require webonyx/graphql-php

Elasticsearch ile GraphQL Entegrasyonu

Elasticsearch hizmetimiz için, elasticsearch-php paketini yüklememiz gerekiyor. Elasticsearch sorguları için daha da kullanışlı olanlarınıza hizmet verecek \"elasticsearch-php\" paketi, Composer aracılığıyla kurulabilir.

composer require elasticsearch/elasticsearch

Bu paketi kullanarak Elasticsearch client nesnesini oluşturarak aramaları başlatıyoruz. Laravel kullanıyorsanız, bu ayarlamaları config klasöründen \"services.php\" dosyasında yapabilirsiniz.


use Elasticsearch\\ClientBuilder;

$client = ClientBuilder::create()->build();

$query = [
'index' => 'your_index_name',
'type' => 'your_type_name',
'body' => [
'query' => [
// Elasticsearch sorgusu buraya eklenecektir.
]
]
];

$response = $client->search($query);

GraphQL Sorguları

Elasticsearch'den veri almak için, GraphQL sorgularını kullanabiliriz. Örneğin, bir blog uygulamasında blog yazılarının verilerini Elasticsearch'ten çekmek istediğimizi varsayalım. Bu verileri GraphQL sorgusuyla sorgulayalım.

type Query {
blogPosts(search: String): [BlogPost]
}

type BlogPost {
id: ID!
title: String!
content: String!
date: String!
}

Bu sorgu, \"search\" parametresindeki anahtar kelimeyi kullanarak Elasticsearch'ten \"BlogPost\" nesnelerini alacaktır.

Elasticsearch'den veri çeken işlevimizi kullanarak, verilerimizi doldurmak için özel bir işlev yazabiliriz.

$source = [];
$search_query = '';

if ($args['search']) {
$search_query = $args['search'];
}

if ($search_query) {
$query = [
'index' => 'index_name',
'type' => 'type_name',
'body' => [
'query' => [
'match' => [
'title' => $search_query,
]
]
]
];

$source = $client->search($query);
} else {
$query = [
'index' => 'index_name',
'type' => 'type_name',
'body' => [
'query' => [
'match_all' => [],
],
],
];

$source = $client->search($query);
}

$results = [];

foreach ($source['hits']['hits'] as $hit) {
$data = $hit['_source'];
$data['id'] = $hit['_id'];

$results[] = $data;
}

return $results;

GraphQL Sorgu Çalıştırma

Sorguları çalıştırmak için, \"GraphQL\" kütüphanesi kullanılarak \"schema\" ve \"query\" yapılarını oluşturabiliriz.

$schema = new Schema([
'query' => new ObjectType([
'name' => 'Query',
'fields' => [
'blogPosts' => [
'type' => Type::listOf($blogPostType),
'args' => [
'search' => ['type' => Type::string()]
],
'resolve' => function ($root, $args, $context) {
return get_blog_posts($client, $args);

PHP'de GraphQL ile Elasticsearch ve Kibana Entegrasyonu

Adı : PHP'de GraphQL ile Elasticsearch ve Kibana Entegrasyonu

PHP'de GraphQL ile Elasticsearch ve Kibana Entegrasyonu

GraphQL, web ve mobil uygulamalarında kullanılan modern bir API sorgu dilidir. Elasticsearch, büyük miktarda veri depolama, arama ve analiz için kullanılan bir açık kaynaklı arama motorudur. Kibana ise Elasticsearch için bir görselleştirme aracıdır. Bu üç teknolojiyi birleştirerek, uygulamalarımızda büyük miktarda veri yönetimini ve analizini etkinleştirebiliriz.

Bu yazıda, PHP'de GraphQL ile Elasticsearch ve Kibana entegrasyonunu adım adım anlatacağız ve birkaç örnek vereceğiz.

Elasticsearch ve Kibana Yüklemesi

İlk önce, Elasticsearch ve Kibana'yı yüklememiz gerekiyor. Elasticsearch resmi web sitesinden indirilip kurulabilir. Kibana ise Elasticsearch de kullanılan mantıkla aynı şekilde kurulur. Aynen Elasticsearch’da olduğu gibi Kibana da resmi web sitesinde yer alan download linki kullanılarak indirilmeli ve kurulum işlemi tamamlanmalıdır.

Graphql Yüklemesi

GraphQL'in PHP'de kullanılabilmesi için, \"webonyx/graphql-php\" paketi yüklenmelidir.

composer require webonyx/graphql-php

Elasticsearch ile GraphQL Entegrasyonu

Elasticsearch hizmetimiz için, elasticsearch-php paketini yüklememiz gerekiyor. Elasticsearch sorguları için daha da kullanışlı olanlarınıza hizmet verecek \"elasticsearch-php\" paketi, Composer aracılığıyla kurulabilir.

composer require elasticsearch/elasticsearch

Bu paketi kullanarak Elasticsearch client nesnesini oluşturarak aramaları başlatıyoruz. Laravel kullanıyorsanız, bu ayarlamaları config klasöründen \"services.php\" dosyasında yapabilirsiniz.


use Elasticsearch\\ClientBuilder;

$client = ClientBuilder::create()->build();

$query = [
'index' => 'your_index_name',
'type' => 'your_type_name',
'body' => [
'query' => [
// Elasticsearch sorgusu buraya eklenecektir.
]
]
];

$response = $client->search($query);

GraphQL Sorguları

Elasticsearch'den veri almak için, GraphQL sorgularını kullanabiliriz. Örneğin, bir blog uygulamasında blog yazılarının verilerini Elasticsearch'ten çekmek istediğimizi varsayalım. Bu verileri GraphQL sorgusuyla sorgulayalım.

type Query {
blogPosts(search: String): [BlogPost]
}

type BlogPost {
id: ID!
title: String!
content: String!
date: String!
}

Bu sorgu, \"search\" parametresindeki anahtar kelimeyi kullanarak Elasticsearch'ten \"BlogPost\" nesnelerini alacaktır.

Elasticsearch'den veri çeken işlevimizi kullanarak, verilerimizi doldurmak için özel bir işlev yazabiliriz.

$source = [];
$search_query = '';

if ($args['search']) {
$search_query = $args['search'];
}

if ($search_query) {
$query = [
'index' => 'index_name',
'type' => 'type_name',
'body' => [
'query' => [
'match' => [
'title' => $search_query,
]
]
]
];

$source = $client->search($query);
} else {
$query = [
'index' => 'index_name',
'type' => 'type_name',
'body' => [
'query' => [
'match_all' => [],
],
],
];

$source = $client->search($query);
}

$results = [];

foreach ($source['hits']['hits'] as $hit) {
$data = $hit['_source'];
$data['id'] = $hit['_id'];

$results[] = $data;
}

return $results;

GraphQL Sorgu Çalıştırma

Sorguları çalıştırmak için, \"GraphQL\" kütüphanesi kullanılarak \"schema\" ve \"query\" yapılarını oluşturabiliriz.

$schema = new Schema([
'query' => new ObjectType([
'name' => 'Query',
'fields' => [
'blogPosts' => [
'type' => Type::listOf($blogPostType),
'args' => [
'search' => ['type' => Type::string()]
],
'resolve' => function ($root, $args, $context) {
return get_blog_posts($client, $args);


E-Ticaret Premium

Basit, Hızlı, Etkili ve Mükemmel bir E-Ticaret Siteniz Olsun

*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle


PHP GraphQL Elasticsearch Kibana Entegrasyon Veri Sorgu Analiz
Sonsuz Bilgi