mpyazilim/elasticsearch

There is no license information available for the latest version (v1.0.1) of this package.

Installs: 4

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/mpyazilim/elasticsearch

v1.0.1 2026-02-07 10:45 UTC

This package is auto-updated.

Last update: 2026-02-07 10:46:47 UTC


README

MPYazilim Elasticsearch, multi-project / multi-domain destekli,
alias + versioned index mantığıyla çalışan, zero-downtime rebuild sağlayan hafif bir Elasticsearch wrapper’ıdır.

Her rebuild işleminde:

  • yeni bir versioned index oluşturur
  • alias’i atomik olarak yeni index’e taşır
  • eski index’i otomatik siler

Disk şişmez, downtime olmaz.

Özellikler

  • ✅ Zero-downtime rebuild

  • ✅ Alias tabanlı routing

  • ✅ Eski index otomatik silinir

  • ✅ Multi-domain destekli

  • ✅ Search-as-you-type

  • ✅ Türkçe analyzer (lowercase + asciifolding)

  • ✅ Framework bağımsız

Gereksinimler

  • PHP 8.1+
  • Elasticsearch 8.x

elastic/elasticsearch PHP client

Kurulum

composer require mpyazilim/elasticsearch

Temel Kullanım

Client Oluşturma

use MPYazilim\Elastic\MPElastic;

$elastic = MPElastic::account([
    'host'     => 'https://localhost',
    'port'     => 9200,
    'username' => 'elastic',
    'password' => 'changeme',
    'domain'   => 'hepsimoda.com.tr',
]);

Ürünler

Rebuild (Index Yenileme)

$elastic->urunler()->rebuild([
    [
        'urunId'    => 1,
        'name'      => 'Mini Kalpli Düğmeli Elbise',
        'name_suggest' => 'Mini Kalpli',
        'aciklama'  => 'Yazlık kadın elbisesi',
    ],
    [
        'urunId'    => 2,
        'name'      => 'Uzun Kollu Elbise',
        'name_suggest' => 'Uzun Kollu',
        'aciklama'  => 'Kışlık elbise',
    ],
]);

Rebuild süreci:

  • Yeni urunler_vYYYYMMDD_His index oluşturulur
  • Veriler bulk ile yazılır
  • Alias yeni index’e taşınır
  • Eski index silinir

Arama

$result = $elastic->urunler()->search('elbise');
  • Benzerlik (_score) önceliklidir
  • Skor eşitse urunId DESC ile sıralanır

Kategoriler

Rebuild (Index Yenileme)

$elastic->kategoriler()->rebuild([
    [
        'kategoriId' => 10,
        'name'       => 'Elbiseler',
        'name_suggest' => 'Elbise',
        'url'        => 'elbiseler',
    ],
    [
        'kategoriId' => 20,
        'name'       => 'Pantolonlar',
        'name_suggest' => 'Pantolon',
        'url'        => 'pantolonlar',
    ],
]);

Arama

$categories = $elastic->kategoriler()->search('elbise');