Opensearch ve .Net : Veri İşleme ve Sorgulama

Mustafa Dikyar
2 min readMay 9, 2024

--

Bu rehber, OpenSearch.Client kütüphanesi aracılığıyla OpenSearch ile nasıl etkileşime geçebileceğimizi anlatacağım. Bu kütüphane, OpenSearch REST API'yi .NET ortamına entegre eder, böylece uygulamalarımızda OpenSearch’ün işlevselliğine sahip olabiliriz.

OpenSearch.Client Kütüphanesinin Kurulumu

Projeye başlamadan önce, OpenSearch.Client Nuget paketini projenize eklemeniz gerekmektedir. Paket yöneticisi konsolunu kullanarak aşağıdaki komutu çalıştırın:

dotnet add package OpenSearch.Client

Ya da .csproj dosyanıza direkt olarak ekleyin:

<Project>
...
<ItemGroup>
<PackageReference Include="OpenSearch.Client" Version="1.7.0" />
</ItemGroup>
</Project>

Bu komut, OpenSearch ile etkileşimde bulunmak için gerekli olan tüm bağımlılıkları projemize dahil eder.

OpenSearch Bağlantısının Yapılandırılması

OpenSearch.Client kütüphanesi ile bir OpenSearchClient nesnesi oluşturarak başlayalım. Bu nesne, OpenSearch sunucumuzla etkileşiminizi yönetir:

using OpenSearch.Client;
var settings = new ConnectionSettings(new Uri("http://localhost:9200"))
.DefaultIndex("my_default_index");
var client = new OpenSearchClient(settings);

Bu yapılandırma, localhost:9200 adresinde çalışan OpenSearch sunucunuza bağlanır ve default index olarak my_default_index'i kullanır.

3. Index Oluşturma

Veri saklama biriminizi tanımlamak için bir index oluşturun. Eğer index zaten varsa, bu adımı atlayabilirsiniz:

var createIndexResponse = client.Indices.Create("my_index", c => c
.Settings(s => s
.NumberOfShards(1)
.NumberOfReplicas(0)
)
);

4. Doküman Ekleme (Create)

Bir index’e veri eklemek, o index altında doküman saklamak anlamına gelir. Aşağıda bir dokümanın nasıl ekleneceği gösterilmektedir:

var myDocument = new { Title = "Opensearch Entegrasyonu", Description = "OpenSearch.Client ile .NET entegrasyonu." };
var indexResponse = client.IndexDocument(myDocument);

5. Doküman Okuma (Read)

Bir dokümanı, belirli bir ID kullanarak okuyabilirsiniz:

var getResponse = client.Get<object>(docId, idx => idx.Index("my_index"));

Burada docId, okumak istediğiniz dokümanın benzersiz kimliğidir.

6. Doküman Güncelleme (Update)

Bir dokümanı güncellemek için, belirli bir ID ve güncellenmiş veri ile bir güncelleme isteği gönderin:

var updateResponse = client.Update<object>(docId, u => u
.Index("my_index")
.Doc(new { Description = "Güncellenmiş açıklama" })
);

7. Doküman Silme (Delete)

Bir dokümanı, belirli bir ID kullanarak silmek için aşağıdaki yöntemi kullanın:

var deleteResponse = client.Delete<object>(docId, d => d.Index("my_index"));

8. Basit Sorgulama (Search)

OpenSearch üzerinde basit bir sorgulama yapmak için aşağıdaki örneği kullanabilirsiniz:

var searchResponse = client.Search<object>(s => s
.Index("my_index")
.Query(q => q
.Match(m => m
.Field(f => f.Title)
.Query("Entegrasyon")
)
)
);

Bu sorgu, Title alanında "Entegrasyon" kelimesini içeren dokümanları getirir.

Bu rehberde, .NET uygulamalarınızı OpenSearch.Client kütüphanesi kullanarak OpenSearch ile nasıl entegre edeceğinizi öğrendiniz. Temel CRUD işlemleri, sorgulama ve index yönetimi gibi işlevlerle, uygulamanızın arama ve analiz kabiliyetlerini genişletebilirsiniz.

Sevgiler.

--

--