İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Veri & Analitik
  • Elasticsearch Mapping’lerini Azure Cosmos DB’ye Taşımak
Bulut Altyapı Geliştirici Araçları Veri & Analitik Azure Cosmos DB, computed properties, Elasticsearch mapping, full-text policy, vector index Aşkın KILIÇ 03/10/2026 0 Yorumlar

Elasticsearch Mapping’lerini Azure Cosmos DB’ye Taşımak

Elasticsearch Mapping'lerini Azure Cosmos DB'ye Taşımak
📑 İçindekiler
  1. Mapping karşılıklarına genel bakış
  2. Yeteneğe göre çeviri
  3. 1. Tam eşleşme, filtre, sıralama ve aralık davranışı
  4. 2. Full-text alanlar ve analyzer'lar
  5. 3. Vector alanları
  6. 4. Türetilmiş ve runtime değerler
  7. Önerilen geçiş sırası
  8. Çıkarılacak ders
  9. İlgili İçerikler
  10. Kaynaklar ve İleri Okuma

⏱️ 4 dk okuma📅 3 Ekim 2026

Elasticsearch’ten Azure Cosmos DB’ye geçişte ilk tasarım kararı, mevcut mapping tanımının yeni platformda neye karşılık geleceğidir. Elasticsearch’te mapping tek bir yapıdır; alanların nasıl saklandığı ve indekslendiği orada tanımlanır. Azure Cosmos DB şema bağımsız çalıştığı için birebir çevrilecek bir karşılık sunmaz, mapping’in yaptığı iş dört ayrı yere dağılır: indexing policy, full-text policy, vector policy ve computed properties. Aşağıda, kaynak makaledeki yaklaşım izlenerek bu dört yeteneğin mapping’in hangi bölümünü üstlendiği ve geçişin hangi sırayla yapılmasının önerildiği var.

Hedef, mapping’i satır satır dönüştürmek değil. Uygulamanın bağımlı olduğu sorgulama, filtreleme, sıralama (ranking) ve veri getirme davranışı korunurken Azure Cosmos DB’nin container düzeyindeki modeline geçiliyor.

Mapping karşılıklarına genel bakış

Kaynak makale, Elasticsearch tarafındaki yapıları Azure Cosmos DB karşılıklarıyla şöyle eşleştiriyor:

Elasticsearch Azure Cosmos DB karşılığı
Tam eşleşme sorguları, filtreler, sıralama ve aggregation için kullanılan mapped field’lar, index ayarı ve alan tipleri Indexing policy: included/excluded path’ler, range index’ler, composite index’ler ve spatial index’ler
text alanları ve analyzer’lar Full-text policy ve indexing policy içindeki full-text index
dense_vector alanları ve vector index seçenekleri Container vector policy ve indexing policy içindeki vector index
Runtime field’lar veya arama için materyalize edilmiş değerler Computed properties

Çeviriye başlamadan önce her alanın yalnızca tipini değil, nasıl kullanıldığını envanterlemek gerekiyor. Filtreleme ve sıralamada kullanılan bir alan, relevance sıralaması için kullanılan bir alandan farklı karşılanır, ikisi de string tutsa bile. Tek bir Elasticsearch alanı Azure Cosmos DB tarafında birden fazla yeteneğe karşılık gelebilir.

Yeteneğe göre çeviri

1. Tam eşleşme, filtre, sıralama ve aralık davranışı

Elasticsearch tarafında:

"properties": {
"category": { "type": "keyword" },
"price": { "type": "double" },
"description": { "type": "text" }
}

Azure Cosmos DB tarafında:

"indexingPolicy": {
"includedPaths": [
{ "path": "/category/?" },
{ "path": "/price/?" }
],
"excludedPaths": [
{ "path": "/description/?" }
]
}

JSON değerleri olduğu gibi korunur, yalnızca sorguların kullandığı path’ler indekslenir. Composite index’i ancak tekrar eden bir sorgu category ile filtreleyip price ile sıralıyorsa eklersiniz. Partition key ayrı bir tasarım kararıdır, bu yapılandırmadan bağımsız olarak belirlenir.

2. Full-text alanlar ve analyzer’lar

Elasticsearch tarafında:

"properties": {
"description": {
"type": "text",
"analyzer": "english"
},
"sku": { "type": "keyword" }
}

Azure Cosmos DB tarafında:

"fullTextPolicy": {
"defaultLanguage": "en-US",
"fullTextPaths": [
{ "path": "/description",
"language": "en-US" }
]
}
"fullTextIndexes": [
{ "path": "/description" }
]

Burada özel bir analiz zincirini kopyalamaya çalışmak yerine analyzer’ın amacını çevirmek gerekir: dile duyarlı tokenization, stemming ve stop-word işleme. Tam eşleşme için kullanılan sku alanı ise normal indexing policy içinde kalmaya devam eder.

3. Vector alanları

Elasticsearch tarafında:

"content_vector": {
"type": "dense_vector",
"dims": 384,
"similarity": "cosine",
"index": true
}

Azure Cosmos DB tarafında:

"vectorEmbeddingPolicy": {
"vectorEmbeddings": [{
"path": "/contentVector",
"dataType": "float32",
"distanceFunction": "cosine",
"dimensions": 384
}]
}
"vectorIndexes": [{
"path": "/contentVector",
"type": "quantizedFlat"
}]

Embedding modelinin boyut (dimensions) ve benzerlik fonksiyonu bilgisi aynen korunmalı. Azure Cosmos DB tarafındaki vector index tipini ise veri boyutu, filtreler, gecikme ve recall beklentisi belirler.

4. Türetilmiş ve runtime değerler

Elasticsearch tarafında:

"runtime": {
"discountedPrice": {
"type": "double",
"script": {
"source": "emit(doc['price'].value * 0.9)"
}
}
}

Azure Cosmos DB tarafında:

"computedProperties": [{
"name": "discountedPrice",
"query": "SELECT VALUE c.price * 0.9 FROM c"
}]

Kararlı ve deterministik bir türetmeyi computed property olarak yeniden yazabilirsiniz. Desteklenmeyen ya da dış duruma (external state) bağlı mantık ise ya veri alım (ingestion) aşamasında ya da uygulama katmanında hesaplanır.

Önerilen geçiş sırası

Kaynak makale geçişi beş adımlı bir akışla tarif ediyor:

  1. Mapping ve iş yükünü envanterleyin; mapping’leri, template’leri, analyzer’ları, vector ayarlarını, runtime field’ları ve bunları kullanan sorguları dışa aktarın.
  2. Her alanı davranışına göre sınıflandırın. Path’leri tam eşleşmeli filtreleme/sıralama, full-text arama, vector arama, geospatial sorgular veya türetilmiş değer olarak işaretleyin.
  3. Container politikalarını birlikte tasarlayın ve örtüşmeleri çözün; bir description alanı aynı anda normal sorgulara, full-text aramaya ve vector tabanlı veri getirmeye açık olabilir.
  4. Temsili veri ve sorgularla doğrulayın. Sonuç doğruluğunu, relevance sıralamasını, gecikmeyi, RU tüketimini ve yazma maliyetini karşılaştırın.
  5. Kontrollü yayına alın. Politika değişikliklerini bağımlı sorgulardan önce uygulayın, uygulanabilir olduğu yerde index dönüşümünü izleyin, bir geri dönüş (rollback) yolu bırakın.

Çıkarılacak ders

Bir Elasticsearch mapping’ini yeniden üretilmesi gereken bir şema olarak değil, arama niyetinin beyanı olarak ele almak daha doğru. Azure Cosmos DB’de bu niyet, birbiriyle uyumlu çalışan container politikaları üzerinden ifade edilir: indexing policy standart sorgu erişim yollarını, full-text policy analiz edilen metni, vector policy embedding’leri, computed properties ise yeniden kullanılabilir türetilmiş değerleri üstlenir. İş yüküne göre çeviri yapmak davranışı korur, gereksiz index’lerden ve geçiş dönemine özgü varsayımlardan da uzak tutar.

Bu yazı, kaynak makalenin bir serinin ikinci bölümü olduğunu belirtiyor. İlk bölümde Elasticsearch kullanıcıları için genel geçiş yolu ve full-text search desteğinin temel kavramları ele alınmıştı. Üçüncü bölümün ise sorgu çevirisini, yani bir Elasticsearch Search Request’in Azure Cosmos DB sorgusuna nasıl dönüştürüleceğini kapsayacağı belirtiliyor.

İlgili İçerikler

  • Azure Cosmos DB VS Code Eklentisi: Ajanlar İçin Yeni Araçlar
  • Azure Cosmos DB’de Partition Key Değiştirmek: Artık Daha Az Acı Veriyor
  • Azure Cosmos DB Shell Public Preview: CLI'a AI Geldi

Kaynaklar ve İleri Okuma

  • Migrating Elasticsearch Mappings to Azure Cosmos DB — Madeline Egan, Azure Cosmos DB Blog
  • Azure Cosmos DB Blog
  • Azure Cosmos DB’ye Elasticsearch’ten Geçiş Rehberi
  • Elasticsearch Sorgularını Azure Cosmos DB’ye Çevirmek
🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

VS Code Python Environments Nisan Güncellemesi: Hız Farkı
VS Code Python Environments Nisan Güncellemesi: Hız Farkı28 Nis 2026
Süperiletkenler Veri Merkezlerinde Hız Devrimi
Süperiletkenler Veri Merkezlerinde Hız Devrimi9 Mar 2026
Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML'da
Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML'da24 Tem 2026
VS Code’da Kurumsal Eklenti Dönemi: Kontrol, Hız, Düzen
VS Code’da Kurumsal Eklenti Dönemi: Kontrol, Hız, Düzen6 Haz 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket Azure Cosmos DB computed properties Elasticsearch mapping full-text policy vector index
Önceki yazı

Azure Cosmos DB GSI ile Canlı Ajan Oturumlarını Korumak

İlginizi Çekebilir

Azure Cosmos DB GSI ile Canlı Ajan Oturumlarını Korumak
Aşkın KILIÇ 0

Azure Cosmos DB GSI ile Canlı Ajan Oturumlarını Korumak

02/10/2026
Elasticsearch Sorgularını Azure Cosmos DB'ye Çevirmek
Aşkın KILIÇ 0

Elasticsearch Sorgularını Azure Cosmos DB’ye Çevirmek

02/10/2026
Data API builder 2.1.5 JSON ve vector Tiplerini Taşıyor
Aşkın KILIÇ 0

Data API builder 2.1.5 JSON ve vector Tiplerini Taşıyor

02/10/2026

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Elasticsearch Mapping'lerini Azure Cosmos DB'ye Taşımak
    03/10/2026 Elasticsearch Mapping’lerini Azure Cosmos DB’ye Taşımak
  • Azure Cosmos DB GSI ile Canlı Ajan Oturumlarını Korumak
    02/10/2026 Azure Cosmos DB GSI ile Canlı Ajan Oturumlarını Korumak
  • GitHub Security Advisories'de Gizli Yorum Dönemi
    02/10/2026 GitHub Security Advisories’de Gizli Yorum Dönemi
  • Elasticsearch Sorgularını Azure Cosmos DB'ye Çevirmek
    02/10/2026 Elasticsearch Sorgularını Azure Cosmos DB’ye Çevirmek
  • Data API builder 2.1.5 JSON ve vector Tiplerini Taşıyor
    02/10/2026 Data API builder 2.1.5 JSON ve vector Tiplerini Taşıyor
  • 25 Dolar Altında Yapay Zeka Uygulaması mı? İşte Nasıl Yapılır!
    10/03/2026 25 Dolara Yapay Zeka Uygulaması Nasıl Yapılır?
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • Terminalde AI Ajanlarını Koddan Teste Taşımak: azd ile Gerçekten Yerel Deneyim
    18/03/2026 Terminalde AI Ajanlarını Koddan Teste Taşımak: azd ile Gerçekten Yerel Deneyim
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure OpenAI azure sdk Azure SQL bulut bilişim CI/CD code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry otomasyon performans Pull Request RAG REST API SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 469 yazı 🏗️ Bulut Altyapı 378 yazı 🤖 Yapay Zeka 314 yazı 🔧 DevOps 260 yazı ☁️ Microsoft Azure 254 yazı 🔒 Güvenlik & Kimlik 214 yazı 🏢 Kurumsal Teknoloji 96 yazı 📊 Veri & Analitik 66 yazı 🐳 Konteyner & Kubernetes 61 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Azure Cosmos DB GSI ile Canlı ...
    →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS