C# (.NET) के लिए Elasticsearch क्लाइंट: NEST और Elastic.Clients.Elasticsearch

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# (.NET) के लिए Elasticsearch क्लाइंट: NEST और Elastic.Clients.Elasticsearch



Elasticsearch Apache Lucene पर आधारित एक शक्तिशाली वितरित खोज और विश्लेषण प्रणाली है। C# (.NET) एप्लिकेशन से इसके साथ काम करने के लिए कई आधिकारिक और तृतीय-पक्ष क्लाइंट मौजूद हैं। इस लेख में, हम दो मुख्य लाइब्रेरीज़ पर विस्तार से चर्चा करेंगे: NEST (उच्च-स्तरीय क्लाइंट) और Elastic.Clients.Elasticsearch (Elastic का नया आधिकारिक क्लाइंट)। आप सीखेंगे कि इंडेक्सिंग, सर्च और डेटा प्रबंधन के लिए उन्हें कैसे इंस्टॉल, कॉन्फ़िगर और उपयोग करें।



1. NEST — उच्च-स्तरीय क्लाइंट (जटिल प्रोजेक्ट्स के लिए अनुशंसित)



NEST एक पुराना लेकिन सिद्ध क्लाइंट है जो POCO क्लासेस का उपयोग करके एक सख्ती से टाइप किया गया API प्रदान करता है। यह स्वचालित रूप से JSON को C# ऑब्जेक्ट्स में सीरियलाइज़/डीसीरियलाइज़ करता है और क्वेरी बनाने के लिए fluent-सिंटैक्स का समर्थन करता है।



इंस्टॉलेशन

dotnet add package NEST


NEST उपयोग का उदाहरण

using Nest;using System;

// दस्तावेज़ के लिए POCO क्लासpublic class Article{ public int Id { get; set; } public string Title { get; set; } public string Content { get; set; } public DateTime PublishDate { get; set; }}

class Program{ static async Task Main(string[] args) { // कनेक्शन सेटिंग्स var settings = new ConnectionSettings(new Uri("http://localhost:9200")) .DefaultIndex("articles") .EnableDebugMode(); // क्वेरी लॉगिंग सक्षम करें

var client = new ElasticClient(settings);

// 1. दस्तावेज़ इंडेक्स करना var article = new Article { Id = 1, Title = "C# में Elasticsearch", Content = ".NET से Elasticsearch के साथ काम करने की विस्तृत गाइड", PublishDate = DateTime.UtcNow };

var indexResponse = await client.IndexDocumentAsync(article); Console.WriteLine($"इंडेक्सिंग: {indexResponse.IsValid}");

// 2. खोज var searchResponse = await client.SearchAsync<Article>(s => s .Query(q => q .Match(m => m .Field(f => f.Title) .Query("Elasticsearch") ) ) );

foreach (var hit in searchResponse.Hits) { Console.WriteLine($"मिला: {hit.Source.Title}"); } }}


2. Elastic.Clients.Elasticsearch — नया आधिकारिक क्लाइंट



संस्करण 8.x से शुरू करके, Elastic ने एक नया क्लाइंट Elastic.Clients.Elasticsearch (जिसे Elasticsearch.Net भी कहा जाता है) जारी किया है। यह हल्का, एसिंक्रोनस है और Elasticsearch के नवीनतम संस्करणों के अनुरूप है। NEST के विपरीत, इसमें POCO क्लासेस का अनिवार्य उपयोग नहीं है, हालांकि यह उनका समर्थन करता है।



इंस्टॉलेशन

dotnet add package Elastic.Clients.Elasticsearch


नए क्लाइंट के उपयोग का उदाहरण

using Elastic.Clients.Elasticsearch;using Elastic.Clients.Elasticsearch.QueryDsl;using System;

class Program{ static async Task Main(string[] args) { // कनेक्शन सेटिंग्स var settings = new ElasticsearchClientSettings(new Uri("http://localhost:9200")) .DefaultIndex("articles");

var client = new ElasticsearchClient(settings);

// 1. POCO के साथ इंडेक्सिंग var article = new Article { Id = 2, Title = "नया Elasticsearch क्लाइंट", Content = "Elastic.Clients.Elasticsearch की क्षमताओं का अवलोकन", PublishDate = DateTime.UtcNow };

var indexResponse = await client.IndexAsync(article, idx => idx.Index("articles")); Console.WriteLine($"इंडेक्सिंग: {indexResponse.IsValidResponse}");

// 2. लैम्ब्डा-सिंटैक्स का उपयोग करके खोज var se

अनुशंसाएँ