*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle
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
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);
*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle