Tarayıcınız Javascript Desteklemiyor! Elastic Search Nedir? | Zap Group Web Tasarım

Elastic Search Nedir?

Elastic Search Nedir?

Elastic Search Nedir?

Büyük ürün ve müşteri tabanına sahip işletmelerden ürün bilgisi arayan müşteriler, ürün bilgileri alımında uzun süre gibi sorunlarla karşı karşıyadır. Bu, düşük kullanıcı deneyimine yol açar ve potansiyel müşteriyi kaçırır.

Aramadaki gecikme, verilerin birden fazla tabloya dağıldığı ve anlamlı kullanıcı bilgilerinin alınmasının, verilerin onlardan alınmasını gerektiren ürün tasarımı için kullanılan ilişkisel veritabanına atfedilir. İlişkisel Veri Tabanı, çok büyük veri söz konusu olduğunda ve arama sonuçlarını veri tabanından sorgular alırken oldukça yavaş çalışır. İşletmeler, günümüzde, veri alımının hızlı olduğu şekilde saklanan alternatif yöntemler aramaktadır. Bu veri depolamak için RDBMS yerine NOSQL benimseyerek elde edilebilir. Elasticsearch, NOSQL dağıtılmış bir veritabanıdır. Elasticsearch, zorlu iş yükünü ve gerçek zamanlı katılım için gereken düşük gecikmeyi karşılamak üzere ziyaretçi profilleri oluşturmak ve güncellemek için esnek veri modellerine güvenir.

İlişkisel veritabanı, devasa veri söz konusu olduğunda ve arama sonuçlarını veritabanından sorgular alırken oldukça yavaş çalışır. (Bunu indeksleme gibi optimize etmenin yolları var ama sonra her alanı dizine ekleyemememiz gibi ilgili kısıtlamalar var. Çok dizine eklenmiş tablolara yapılan satır güncellemeleri zaman alacaktı. İnsanlar performansı artırmak için RDBMS'lerini dikey olarak ölçeklendirdiler.) Bu bir sorundur. Elasticsearch tarafından aşılması. Aşağıdaki şekil RDBMS'nin Veritabanından bir şey aramak için ideal olarak nasıl çalıştığını göstermektedir.

SQL RDBMS ile çalışır

Elasticsearch ile ilgili neyin önemli olduğunu anlayalım mı? ES (Elasticsearch), belge odaklı veya yarı yapılandırılmış verileri depolamak, almak ve yönetmek için tasarlanmış, belge odaklı bir veritabanıdır. Elasticsearch'ü kullanırken, verileri JSON belge formunda saklarsınız. Sonra onları almak için sorgula. İhtiyacınıza göre eşleme yapmadığınız sürece verileri endekslemek için bazı varsayılanları kullanmak şemaya gerek duymaz. Elasticsearch, otomatik tip tahmini ve daha fazla hassasiyet için indeksleme için Lucene StandardAnalyzer kullanıyor.

Elasticsearch'ün her özelliği bir REST API'si olarak gösteriliyor

  1. Dizin API - Dizini belgelemek için kullanılır
  2. API Al - Belgeyi almak için kullanılır
  3. Arama API'sı - Sorgunuzu göndermek ve sonucu almak için kullanılır
  4. Eşleme API'sini Koy - Varsayılan seçenekleri geçersiz kılmak ve kendi eşlememizi tanımlamak için kullanılır

Elasticsearch'ün sorguyu JSON biçiminde belirttiğiniz kendi Query Domain Spesifik Dili vardır. İhtiyacınıza göre diğer sorguları da yuvalayabilirsiniz. Gerçek projeler, bazı koşullar, farklı ağırlıklar, yeni belgeler, önceden tanımlanmış bazı alanların değerleri vb. Uygulayarak farklı alanlarda arama yapılmasını gerektirir. Tüm bu karmaşıklık tek bir sorgu aracılığıyla ifade edilebilir. DSL sorgusu güçlüdür ve tek bir sorgu aracılığıyla gerçek dünyadaki sorgu karmaşıklığını ele almak için tasarlanmıştır. Elasticsearch API'leri doğrudan Lucene ile ilgilidir ve Lucene işlemleriyle aynı adı kullanıyor. DSL'i sorgulamak için Lucene TermQuery'yi de kullanın.

Aşağıdaki şekil, Elasticsearch sorgusunun nasıl çalıştığını gösterir.

Elasticsearch'de indeksleme ve arama

 

ELASTİCSEARCH'ÜN TEMEL KAVRAMLARINA BİR GÖZ ATALIM

Küme : Küme, tüm verileri bir arada tutan ve tüm sunucularda birleşik endeksleme ve arama özellikleri sağlayan bir veya daha fazla sunucunun koleksiyonudur. İlişkisel Veritabanı düğümü için DB Örneğidir. Aynı Küme Adı ile N Düğümleri olabilir.

NRT (Near Realtime ): Elasticsearch neredeyse gerçek zamanlı bir arama platformudur. Bir dokümanı dizine eklediğiniz zaman aranabilir hale gelene kadar çok az şey var.

Dizin : Dizin, benzer özelliklere sahip bir belge koleksiyonudur. Örneğin, müşteri verileri için bir dizin ve ürün bilgileri için bir tane daha alabiliriz. Bir dizin, dizin arama, güncelleme ve silme işlemleri gerçekleştirirken dizine karşılık gelen benzersiz bir adla tanımlanır. Tek bir kümede, istediğimiz kadar dizin tanımlayabiliriz. Index = RDBMS'de Veri Tabanı Şeması (İlişkisel Veri Tabanı Yönetim sistemi). Bir Veritabanına veya Şemaya benzer. Mantıksal gruplandırmaya sahip bir tablo seti olarak düşünün. ElasticSearch terimlerinde, Index = Veritabanı, Tür = Tablo, Belge = Satır.

Düğüm : Bazı verileri tutan ve kümenin endeksleme ve sorgulamaya katılan tek bir sunucu. Bir düğüm, belirli bir kümeye, belirli bir küme adıyla katılmak üzere yapılandırılabilir. Tek bir kümenin istediğimiz kadar düğümü olabilir. Bir düğüm yalnızca bir ElasticSearch örneğidir. Bunu çalışan bir MySQL örneği olarak kabul edin. Makine başına farklı bir portta çalışan bir MySQL örneği var. Elasticsearch'te genel olarak, bir elasticsearch örneği makine başına çalışır. Elasticsearch, dağıtılmış hesaplama kullanır, böylece ayrı makinelere sahip olmak, daha fazla donanım kaynağı olduğu gibi yardımcı olacaktır.

Shards : Bir Dizin Belgeleri alt kümesi. Bir Endeks birçok parçalara ayrılabilir.

Eşleme Türü = RDBMS'deki Veritabanı Tablosu

ElasticSearch, tablo işlevi gören belge tanımlarını kullanır. ElasticSearch'te bir dokümanı PUT (“Dizin”) yaparsanız, özellik türlerini otomatik olarak belirlemeye çalıştığını fark edeceksiniz. Bu, MySQL'e bir JSON blobunu eklemek ve MySQL'i, veritabanı tablosunu oluşturduğu için sütunların ve sütun türlerinin sayısını belirlemek gibidir.

Anlamaktan daha fazlası Elasticsearch nedir? Elasticsearch'ü ne zaman kullanacağınızı bilmek önemlidir? Elasticsearch'ün kullanım durumlarından bazıları:

  • Metinsel Arama (saf metin arama) - Elasticsearch, öncelikle metnin çok olduğu yerlerde kullanılır ve belirli bir ifadeyle en iyi eşleşmeye ilişkin verileri aramak istiyoruz.
  • Ürün ad ve özelliklerine göre arama (Metin arama ve yapılandırılmış veri)
  • Veri Toplama - Toplamanın çerçevesi, bir arama sorgusuna dayanarak toplanan verilerin sağlanmasına yardımcı olur. Verilerin karmaşık özetlerini oluşturmak için oluşturulabilen toplama denilen basit yapı taşlarına dayanır. Bir toplama, bir dizi belge üzerinde analitik bilgi üreten bir çalışma birimi olarak görülebilir. Yürütmenin içeriği, bu belge kümesinin ne olduğunu tanımlar (örneğin, arama isteğinin yürütülen sorgusu / filtreleri bağlamında üst düzey bir toplama yürütülür).
  • JSON belge depolama- Bazı verileri içeren bir JSON nesnesi. ES'deki temel bilgi birimidir. Belge indekslenebilen temel bir bilgi birimidir.
  • Coğrafi Arama - Elasticsearch, herhangi bir ürünü Coğrafi olarak yerelleştirmek için kullanılabilir. Örneğin: 30 dakika içerisinde pizza servisi yapan tüm restoranlar için.
  • Otomatik Öner: Kullanıcının birkaç karakter yazmaya başlamasını ve yazarken önerilen sorguların bir listesini almasını sağlar.
  • Otomatik Tamamlama: Önceki aramalara dayanarak, kısmen yazılmış kelimelerde bir arama kutusu doldurarak arama için otomatik tamamlamaya yardımcı olur.

Elasticsearch kullanıcıları, küçük günlük çizgi belgeler eklemekten büyük ölçekli Web belgeleri koleksiyonlarını dizine eklemeye ve dizin oluşturma işlemlerini en üst düzeye çıkarmaya kadar uzanan çok çeşitli kullanım durumlarına sahiptir.

 

ELASTİCSEARCH'Ü KULLANMANIN YARARLARI:

1) Büyük miktarda veriyi yönetir: Gerekli arama sorgusu verilerini almak için 10 saniyeden uzun süren geleneksel SQL veritabanı yönetim sistemlerine kıyasla, Elasticsearch bunu 10 ms içinde yapabilir.

2) Doğrudan, Kolay ve Hızlı erişim: Belgeler, dizindeki karşılık gelen meta verilere yakın bir yerde saklanır. Bu, okunan veri sayısını azaltır ve sonuç olarak arama sonucu yanıtını arttırır.

3) Arama Motorunun Ölçeklendirilebilirliği: Elasticsearch dağıtık bir mimariye sahip olduğundan, binlerce sunucuyu ölçeklendirmeyi ve petabayt veri barındırmayı mümkün kılar. Müşterilerin daha sonra otomatik olarak yapıldığı gibi dağıtılmış tasarımın karmaşıklığını yönetmesi gerekmez.

Bazen bazı belgeleri indekslemenin ya da sorgulamanın birden fazla yoluna sahibiz ve Elasticsearch'ün yardımı ile daha iyisini yapabiliriz. Elasticsearch yeni değil, ancak hızla gelişen, yeni özellikler ekleniyor. Ancak çekirdek tutarlıdır ve arama motorunuz için arama sonuçlarıyla daha hızlı performans elde etmenize yardımcı olabilir.