Elasticsearch’e Modern, Hafif ve Açık Kaynak Bir Alternatif
Giriş
Modern web uygulamalarında arama özelliği artık bir “ekstra” değil, kullanıcı deneyiminin merkezinde yer alan kritik bir bileşen haline geldi. Kullanıcılar; hızlı, hataya toleranslı ve doğru sonuçlar sunan arama sistemleri bekliyor. Ancak bu beklentiyi karşılamak için kullanılan çözümler çoğu zaman karmaşık ve maliyetli olabiliyor.
Özellikle Laravel projelerinde Elasticsearch gibi güçlü ama ağır çözümler; kurulum, bakım ve kaynak tüketimi açısından her proje için ideal olmayabiliyor. Bu noktada Meilisearch, açık kaynak yapısı, yüksek performansı ve geliştirici dostu API’siyle öne çıkan modern bir arama motoru olarak dikkat çekiyor.
Bu yazıda, Laravel + Meilisearch entegrasyonunu, Laravel Scout kullanarak arama altyapısının nasıl kurulacağını, çok dilli arama desteğinin nasıl sağlanacağını ve neden Meilisearch’in Elasticsearch’e güçlü bir alternatif olduğunu adım adım ve uygulamalı örneklerle ele alacağız.
Meilisearch Nedir?
Meilisearch, modern uygulamalar için geliştirilmiş, açık kaynaklı ve son derece hızlı bir full-text search engine’dir. Özellikle şu özellikleriyle öne çıkar:
-
Milisaniyeler içinde arama sonuçları
-
Typo tolerance (yazım hatalarına tolerans)
-
Relevance (alaka) odaklı sıralama
-
Basit REST API
-
Çok dilli arama desteği
-
Düşük sistem kaynağı tüketimi
Meilisearch’in temel felsefesi şudur:
“Minimum konfigürasyon ile maksimum arama performansı”
Meilisearch vs Elasticsearch
Kısa ama net bir karşılaştırma yapmak gerekirse:
| Özellik | Meilisearch | Elasticsearch |
|---|---|---|
| Kurulum | Çok kolay | Karmaşık |
| Kaynak tüketimi | Düşük | Yüksek |
| Öğrenme eğrisi | Düşük | Yüksek |
| Laravel entegrasyonu | Çok kolay | Orta |
| Küçük/orta projeler | ✅ Çok uygun | ❌ Gereksiz ağır |
| Büyük veri analizi | ❌ Sınırlı | ✅ Çok güçlü |
Blog, e-ticaret, içerik platformları ve SaaS projeleri için Meilisearch genellikle daha mantıklı bir tercihtir.
Laravel’de Meilisearch Kullanmanın Avantajları
Laravel ekosistemi içinde Meilisearch kullanmanın en büyük avantajı, Laravel Scout ile kusursuz entegrasyonudur.
-
Eloquent modelleri doğrudan indeksleyebilme
-
Arama kodlarının sade ve okunabilir olması
-
Queue desteği
-
Kolay çok dilli yapı kurulumu
Laravel + Meilisearch Kurulumu
1. Meilisearch Kurulumu
Docker kullananlar için (önerilen):
docker run -it --rm \
-p 7700:7700 \
-e MEILI_MASTER_KEY=masterKey \
getmeili/meilisearch
2. Laravel Scout Kurulumu
composer require laravel/scout
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
3. Scout Ayarları (.env)
SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=http://127.0.0.1:7700
MEILISEARCH_KEY=masterKey
Model Entegrasyonu (Searchable Trait)
Örnek bir Post modeli:
use Laravel\Scout\Searchable;
class Post extends Model
{
use Searchable;
protected $fillable = [
'title',
'content',
'language'
];
public function toSearchableArray()
{
return [
'title' => $this->title,
'content' => $this->content,
'language'=> $this->language,
];
}
}
Verileri Meilisearch’e Aktarma
php artisan scout:import "App\Models\Post"
Bu işlemle mevcut tüm kayıtlar Meilisearch indeksine aktarılır.
Arama İşlemi (Basit Kullanım)
$posts = Post::search('laravel')->get();
Typo tolerance otomatik olarak devrededir:
-
laravel -
larvel -
laravelr
hepsi sonuç döner.
Gelişmiş Arama (Filtreleme)
Post::search('api')
->where('language', 'tr')
->get();
Bu yapı özellikle çok dilli projeler için kritik öneme sahiptir.
Çok Dilli Arama Desteği (Multi-Language Search)
1. Dil Alanı Kullanımı
Veritabanında:
language: tr | en | de
2. Dil Bazlı Arama
Post::search($keyword)
->where('language', app()->getLocale())
->get();
3. Ayrı İndeks Kullanımı (Alternatif Yöntem)
public function searchableAs()
{
return 'posts_' . $this->language;
}
Bu yöntem SEO açısından daha temiz ve daha kontrollü sonuçlar üretir.
Relevance ve Ranking Ayarları
Meilisearch varsayılan olarak oldukça başarılıdır ancak daha iyi sonuçlar için:
'title',
'content'
öncelik sıralaması ayarlanabilir.
curl -X PATCH 'http://localhost:7700/indexes/posts/settings/ranking-rules'
Queue ile Performanslı İndeksleme
Büyük projelerde:
SCOUT_QUEUE=true
Bu sayede indeksleme işlemleri kullanıcıyı bekletmez.
Gerçek Hayat Kullanım Senaryoları
Meilisearch şu projelerde ciddi fark yaratır:
-
Blog & içerik platformları
-
E-ticaret ürün aramaları
-
SaaS dashboard aramaları
-
Admin panel filtreleme sistemleri
-
Çok dilli içerik siteleri
SEO Açısından Meilisearch
Meilisearch doğrudan SEO aracı değildir ancak:
-
Hızlı sonuç → düşük bounce rate
-
Doğru sonuç → yüksek kullanıcı etkileşimi
-
İçerik keşfi → daha fazla sayfa gezilmesi
Bu metrikler dolaylı olarak SEO performansını olumlu etkiler.
Sonuç
Laravel projelerinde hızlı, kolay ve sürdürülebilir bir arama altyapısı kurmak istiyorsanız Meilisearch + Laravel Scout ikilisi güncel, modern ve güçlü bir çözümdür. Elasticsearch’ün getirdiği karmaşıklığı ve maliyeti yaşamadan, kullanıcıya üst düzey bir arama deneyimi sunmak mümkündür.
Özellikle içerik ağırlıklı ve çok dilli Laravel projelerinde Meilisearch, 2025 itibarıyla en mantıklı arama motoru tercihlerinden biri olarak öne çıkmaktadır.
