Tech Leader olarak Aktif Dinleme ve Yansıtmalı Dinlemenin Önemi



Size aktif dinlemeyi veya yansıtmalı dinlemeyi uygulama imkanı vereceğim. Bu teknikte, birisi size bir sorunla geldiğinde, hemen bir çözüme odaklanmadan önce, duyduklarınızı yansıtırsınız. Bu, karşınızdaki kişinin hislerini de anladığınızı gösterene kadar devam eder. Bu şekilde, aynı noktada  olduğunuzdan ve sorunun hem içeriğini hem de yol açtığı duyguları anladığınızdan emin olursunuz.


Aktif Dinleme Yalnızca İş Yerinde Değil, Evde de Faydalı


Aktif dinleme sadece işte değil, evde de faydalı bir tekniktir. Bir sonraki sefere bir aile üyesi veya arkadaşınız konuşmak istediği bir sorunla geldiğinde, bu tekniği deneyin.


Söylediklerini dikkatle dinleyin, duyduklarınızı onlara geri yansıtın ve bu konuda nasıl hissettiklerini anladığınızı dile getirin. Başta biraz garip hissettirebilir, ancak karşınızdaki kişinin anlaşılmış olduğunu hissetmesi, iletişiminizi kuvvetlendirecektir.


Türkçe Çeviri ve Bağlam


Burada alıştırma yapmak istediğinizde durumları bana anlatmaktan çekinmeyin. Türkçe çeviri ve kültürel açıdan ilgili incelikleri göz önünde bulundurarak size yardımcı olmaya çalışacağım.


İşte pratik yapabileceğiniz bazı örnek cümle kalıpları:


Yansıtma: "Yani söylediğin şu, ... Bu durum seni _____ hissettiriyor, doğru mu?"

Anlama Kontrolü: "Doğru anladıysam, sen _____ konusunda endişelisin/üzgün hissediyorsun?"

Duygu Denetleme: "Bu gerçekten sinir bozucu/üzücü olmalı."

Unutmayın, aktif dinleme alıştırma gerektirir. Ne kadar çok pratik yaparsanız, o kadar doğal ve etkili hale gelecektir.

Tech Leader olarak İnsan Yönetimi İpuçları





Çalışanlardan Yeni Fikirler Alın


Çalışanlarınızdan her zaman yeni fikirler almayı ve onları beslemeyi unutmayın. İnsanlar yaratıcı olmak ister ve kendi fikirlerini geliştirmek ve inşa etmek için fırsatlara ihtiyaç duyarlar.

Bu fikirler her zaman şirketin ihtiyaçlarıyla uyumlu olmasa da, çalışanların morale ve genel hedeflerine katkıda bulunacak bir şey keşfetmeleri çok önemlidir.

Görevleri Kariyer Hedefleriyle Uyumlu Hale Getirin


Birisinin fikri kariyer hedefleriyle uyumluysa, onun üzerinde çalışabileceği bir yol bulmaya çalışın.

Takımınızdaki belirli görevler, farklı kariyer hedeflerine hizmet edebilir. Örneğin, biri baş mühendis olmak istiyorsa ve bunu başarmak için daha fazla tasarım işine ihtiyacı olduğunu düşünüyorsanız, ona bu rolü desteklemek için bir tasarım görevi atayabilirsiniz.

Teknik Kararlarda Rehberlik Edin, Emir Vermeyin


Bir mühendis olarak, yukarıdan gelip nasıl inşa edileceğini dikte etmek cazip olabilir.

Ancak mühendislerin de kendi kararlarını vermelerine izin vermelisiniz. Onların da kariyer büyümesi var ve ilginç mimari ve tasarım işlerini kendileri yapmalarına izin vermeniz önemlidir.

Takımınıza rehberlik edebilirsiniz, ancak fikirler onlardan gelmelidir.

Farklı Kariyer Seviyelerine Farklı Yaklaşımlar


İnsanların kariyer gelişimlerinde farklı seviyelerde olduklarını kabul edin ve onları buna göre yönetin.

Yeni bir çalışanı yönetme şekliniz, deneyimli bir baş mühendisi yönetme şeklinizden farklı olacaktır.

Yeni Çalışanlar:


Sorular sorabilecekleri biri bulun.

Net beklentiler belirleyin.

Nasıl yapacaklarını ve gerekli kaynakları nerede bulabileceklerini açıklayın.

Orta Seviye Çalışanlar:


Büyümeleri ve bir sonraki seviyeye geçmeleri için fırsatlar arayın.

Şirket içindeki diğer gruplarla çalışma fırsatları sağlayın.

Adlarını duyurun ve diğer insanların onları iyi bir mühendis olarak görmesini sağlayın.

Mimari işler veya tasarım işleri yapma fırsatları verin.

Düzenli olarak kontrol edin (aylık olarak).

Bu ipuçları, çalışanlarınızın motivasyonlarını ve üretkenliklerini artırmanıza ve genel olarak daha mutlu ve başarılı bir ekip oluşturmanıza yardımcı olacaktır.


Ek Notlar:


Bu ipuçları genel bir rehberdir ve her duruma uymayabilir.

Her çalışanı bir birey olarak ele almak ve onların özel ihtiyaçlarını ve tercihlerini göz önünde bulundurmak önemlidir.

İyi bir iletişim kurmak ve çalışanlara geri bildirim vermek de çok önemlidir.

Umarım bu bilgiler size yardımcı olur!

Elasticsearch Sıfırdan Uzmanlığa 15 Günlük Çalışma Planı



Bu plan, Elasticsearch'ü sıfırdan uzmanlık seviyesine kadar öğrenmenize yardımcı olmak için tasarlanmıştır. Her gün için, tamamlamanız gereken bir dizi konu ve kaynak verilmiştir. Plan, 15 günlük bir süreyi kapsar, ancak kendi hızınıza göre ayarlayabilirsiniz.


Gerekli Araçlar:


Elasticsearch kurulu ve çalışır durumda (https://karakasu.medium.com/lokalde-elasticsearch-ve-kibana-kurulumu-e9e0853aecbe)

Kibana kurulu ve çalışır durumda (https://karakasu.medium.com/lokalde-elasticsearch-ve-kibana-kurulumu-e9e0853aecbe)

Metin editörü

Komut satırı arayüzüne (CLI) erişim

Günlük Plan:


Gün 1:


Elasticsearch nedir? (https://medium.com/@kdrcandogan/elasticsearch-nedir-45d237c29b26)

Elasticsearch temel kavramları (https://medium.com/velotio-perspectives/elasticsearch-101-fundamentals-core-components-a1fdc6090a5e)

Elasticsearch veri yükleme (https://alikzlda.medium.com/elasticsearch-v6-part-1-f2eafcad2fc8)

Kibana ile görselleştirme (https://gokceozturk.medium.com/kibana-ile-veri-g%C3%B6rselle%C5%9Ftirme-e053af39b184)

Gün 2:


Sorgu Dili (Query DSL) (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html)

Basit sorgular yazma (https://www.elastic.co/guide/en/elasticsearch/client/net-api/8.0/examples.html)

Filtreleme ve sıralama (https://support.google.com/docs/answer/3540681?hl=tr&co=GENIE.Platform%3DDesktop)

Aggragationlar (https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html)

Gün 3:


Zaman serisi verileri (https://www.elastic.co/guide/en/elasticsearch/reference/current/use-elasticsearch-for-time-series-data.html)

Log analizi (https://www.elastic.co/guide/en/elasticsearch/reference/current/logging.html)

Anomali tespiti (https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-anomaly-detectors.html)

Gün 4:


Yüksek kullanılabilirlik (https://www.elastic.co/guide/en/elasticsearch/reference/current/highlighting.html)

Yedekleme ve kurtarma (https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshot-restore.html)

Güvenlik (https://www.elastic.co/guide/en/elasticsearch/reference/current/security-privileges.html)

Gün 5:


Elasticsearch ile ilgili araçlar (https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-auto-follow.html)

Gelişmiş sorgular (http://cagataykiziltan.net/elasticsearch/2-elastic-search-consolda-sorgu-yazma/)

Özel analizler (https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-analysis.html)

Gün 6-10:


Her gün, Elasticsearch ile ilgili bir projeyi tamamlayın. Bu projeler, gerçek dünya problemlerini çözmek için Elasticsearch'ü kullanmayı içermelidir.

Gün 11-15:


Elasticsearch ile ilgili bir blog yazısı veya makale yazın.

Elasticsearch topluluğuna katılın ve diğer kullanıcılarla etkileşime girin.

Ek Kaynaklar:


Elasticsearch resmi belgeleri (https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html)

Elasticsearch Eğitimleri (https://www.udemy.com/topic/elasticsearch/)

Elasticsearch Youtube Kanalı (https://www.youtube.com/watch?v=gS_nHTWZEJ8)

Elasticsearch Topluluğu (https://www.elastic.co/community)

Notlar:


Bu plan sadece bir kılavuzdur. Kendi ihtiyaçlarınıza ve öğrenme tarzınıza göre özelleştirebilirsiniz.

Her gün için verilen kaynakları tamamlamak için yeterli zamanınız olmayabilir. Bu durumda, en önemli gördüğünüz kaynaklara odaklanın.

Sorularınız olursa, Elasticsearch topluluğundan yardım almaktan çekinmeyin.

Başarılar!


Event Storming: Etkili ve eğlenceli bir domain modelleme aktivitesi



Büyük bir düşünür şöyle demiş:


The critical complexity of most software projects is in understanding the domain itself.


— Eric Evans


Yani diyor ki, yazılım projelerinde, teknik çözüm geliştirme faaliyeti başlı başına karmaşık bir süreçtir ancak bu süreci sağlıklı bir şekilde tamamlamanın yolu sadece teknik karmaşıklığı ortadan kaldırmaktan değil, daha çok işi, iş süreçlerini, işin terminolojisini doğru anlamaktan geçer. Zaten doğru anlaşılamayan bir soruna getirilen teknik çözümlerin uzun ömürlü olmadığını, uzun vadede kolaylık sağlamaktan çok, başa bela olduğunu birçoğumuz tecrübe etmişizdir. Kaçınız gelişimine katkıda bulunduğunuz bir proje için, “Keşke şurasını tekrar yazabilsek, burasını şuna dönüştürebilsek” şeklinde hasretle iç geçirmiştir?


Peki sorun nerede? Neden iş süreçlerindeki bu karmaşıklığın içinden çıkmak bu kadar çok çaba gerektiriyor?


Yazının devanı...

Elasticsearch : Scalability ve resilience: clusters, nodes, ve shards

Elasticsearch her zaman kullanılabilir olacak ve ihtiyaçlarınıza göre ölçeklenebilecek şekilde tasarlandı. Bunu doğa tarafından dağıtılarak yapar. Kapasiteyi artırmak için bir kümeye sunucular (düğümler) ekleyebilirsiniz ve Elasticsearch, verilerinizi ve sorgu yükünüzü mevcut tüm düğümlere otomatik olarak dağıtır. Uygulamanızı elden geçirmenize gerek yok; Elasticsearch, ölçek ve yüksek kullanılabilirlik sağlamak için çok düğümlü kümeleri nasıl dengeleyeceğini biliyor. Ne kadar çok düğüm olursa o kadar neşeli olur.



Bu nasıl çalışır? Kapakların altında, bir Elasticsearch dizini aslında bir veya daha fazla fiziksel parçanın mantıksal bir gruplandırmasıdır; burada her bir parça aslında kendi kendine yeten bir dizindir. Elasticsearch, belgeleri bir dizinde birden çok parçaya dağıtarak ve bu parçaları birden çok düğüme dağıtarak, hem donanım arızalarına karşı koruma sağlayan hem de düğümler bir kümeye eklendikçe sorgu kapasitesini artıran yedeklilik sağlayabilir. Küme büyüdükçe (veya küçüldükçe) Elasticsearch, kümeyi yeniden dengelemek için parçaları otomatik olarak taşır.


İki tür parça vardır: birinciller ve kopyalar. Dizindeki her belge bir birincil parçaya aittir. Çoğaltma parça, birincil parçanın kopyasıdır. Replikalar, donanım arızasına karşı koruma sağlamak ve belge arama veya alma gibi okuma isteklerini karşılama kapasitesini artırmak için verilerinizin yedek kopyalarını sağlar.


Bir dizindeki birincil parçaların sayısı, dizin oluşturulduğunda sabitlenir ancak çoğaltma parçalarının sayısı, dizin oluşturma veya sorgu işlemlerini kesintiye uğratmadan herhangi bir zamanda değiştirilebilir.


Bu bağlıdır...düzenlemek

Parça boyutuna ve bir dizin için yapılandırılmış birincil parça sayısına göre bir dizi performans hususu ve ödünleşim vardır. Ne kadar çok parça olursa, bu endekslerin bakımında o kadar fazla ek yük olur. Parça boyutu ne kadar büyük olursa, Elasticsearch'ün bir kümeyi yeniden dengelemesi gerektiğinde parçaları hareket ettirmek o kadar uzun sürer.


Çok sayıda küçük parçayı sorgulamak parça başına işlemi daha hızlı hale getirir, ancak daha fazla sorgu daha fazla yük anlamına gelir; dolayısıyla daha az sayıda daha büyük parçayı sorgulamak daha hızlı olabilir. Kısacası… duruma göre değişir.


Başlangıç ​​noktası olarak:


Ortalama parça boyutunu birkaç GB ile birkaç on GB arasında tutmayı hedefleyin. Zamana dayalı verilere sahip kullanım örneklerinde 20 GB ila 40 GB aralığında parçalar görmek yaygındır.

Milyonlarca parça probleminden kaçının. Bir düğümün tutabileceği parça sayısı, mevcut yığın alanıyla orantılıdır. Genel bir kural olarak, GB yığın alanı başına düşen parça sayısı 20'den az olmalıdır.

Kullanım durumunuz için en uygun yapılandırmayı belirlemenin en iyi yolu, kendi verileriniz ve sorgularınızla test yapmaktır .


Afet durumundadüzenlemek

Bir kümenin düğümlerinin birbirleriyle iyi ve güvenilir bağlantılara ihtiyacı vardır. Daha iyi bağlantılar sağlamak için genellikle düğümleri aynı veri merkezinde veya yakındaki veri merkezlerinde birlikte konumlandırırsınız. Ancak yüksek kullanılabilirliği korumak için tek bir hata noktasından da kaçınmanız gerekir. Bir lokasyonda büyük bir kesinti olması durumunda, başka bir lokasyondaki sunucuların görevi devralabilmesi gerekir. Cevap? Kümeler arası çoğaltma (CCR).


CCR, dizinleri birincil kümenizden sıcak yedekleme görevi görebilecek ikincil bir uzak kümeye otomatik olarak senkronize etmenin bir yolunu sağlar. Birincil küme başarısız olursa ikincil küme görevi devralabilir. Ayrıca, kullanıcılarınıza coğrafi yakınlıkta okuma istekleri sunmak amacıyla ikincil kümeler oluşturmak için CCR'yi de kullanabilirsiniz.


Kümeler arası çoğaltma aktif-pasiftir. Birincil kümedeki dizin, etkin lider dizindir ve tüm yazma isteklerini işler. İkincil kümelere çoğaltılan endeksler salt okunur takipçilerdir.


Bakım ve beslemedüzenlemek

Herhangi bir kurumsal sistemde olduğu gibi, Elasticsearch kümelerinizi güvence altına almak, yönetmek ve izlemek için araçlara ihtiyacınız vardır. Elasticsearch'e entegre edilen güvenlik, izleme ve yönetim özellikleri, Kibana'yı bir kümeyi yönetmek için bir kontrol merkezi olarak kullanmanızı sağlar . Alt örnekleme ve dizin yaşam döngüsü yönetimi gibi özellikler, verilerinizi zaman içinde akıllıca yönetmenize yardımcı olur.


Java JDBC ile Elasticsearch'de SQL sorgusu yazabilir miyim?

Evet, Java JDBC kullanarak Elasticsearch'de SQL sorguları yazabilirsiniz.



Bunun için iki temel yöntem vardır:


1. Elasticsearch SQL Plugin:


Elasticsearch'e yüklenebilen bir plugindir.

SQL'e benzer bir dil kullanarak Elasticsearch sorguları oluşturmanıza imkan verir.

Plugin'in sunduğu özel fonksiyonlar ile Elasticsearch'e özgü işlemleri de gerçekleştirebilirsiniz.

Kurulum ve kullanım detayları için: https://www.elastic.co/elasticsearch/sql

2. JDBC Driver:


Elasticsearch'e JDBC ile bağlanmanızı sağlayan bir sürücü yazılımıdır.

SQL sorgularınızı JDBC API'si aracılığıyla çalıştırabilirsiniz.

Çeşitli JDBC driver seçenekleri mevcuttur:

JDBC for Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-jdbc.html

Logstash JDBC Input Plugin: https://github.com/logstash-plugins/logstash-input-jdbc

Her iki yöntemin de kendine özgü avantajları ve dezavantajları vardır:


Elasticsearch SQL Plugin:


Avantajları:


Kullanımı daha kolay, SQL'e daha yakın bir dil sunar.

Elasticsearch'e özgü fonksiyonlara erişim sağlar.

Dezavantajları:


Daha az esneklik sunar.

Karmaşık sorgularda performans sorunları yaşayabilir.

JDBC Driver:


Avantajları:


Daha fazla esneklik sunar.

Karmaşık sorguları daha verimli çalıştırabilir.

Dezavantajları:


Kullanımı daha karmaşıktır.

Elasticsearch'e özgü fonksiyonlara erişim için ek kodlamaya ihtiyaç duyulabilir.

Hangi yöntemi seçmeniz gerektiği:


Basit sorgular ve hızlı başlangıç için: Elasticsearch SQL Plugin

Karmaşık sorgular ve daha fazla esneklik için: JDBC Driver

Örnek:


Aşağıdaki kod, JDBC for Elasticsearch kullanarak Elasticsearch'e bir SQL sorgusu gönderir:


Java

import com.amazon.elasticsearch.driver.client.JestClient;

import com.amazon.elasticsearch.driver.geo.GeoPoint;

import com.amazon.elasticsearch.driver.indices.Index;

import com.amazon.elasticsearch.driver.indices.Mapping;

import com.amazon.elasticsearch.driver.query.MatchAllQuery;

import com.amazon.elasticsearch.driver.query.Query;

import com.amazon.elasticsearch.driver.search.SearchRequest;

import com.amazon.elasticsearch.driver.search.SearchResponse;


public class Example {


    public static void main(String[] args) {

        JestClient client = new JestClient("localhost", 9200);


        // Döküman ekleme

        Index index = new Index("my-index");

        Mapping mapping = new Mapping("my-type");

        mapping.addField("name", "text");

        mapping.addField("location", "geo_point");


        client.createIndex(index, mapping);


        // SQL sorgusu oluşturma

        String sql = "SELECT * FROM my-index WHERE location NEAR '41.999999,28.999999'";


        // JDBC ile sorguyu çalıştırma

        SearchRequest request = new SearchRequest(index);

        Query query = new MatchAllQuery();

        request.setQuery(query);


        SearchResponse response = client.executeSearch(request);


        // Sonuçları işleme

        for (SearchResult hit : response.getHits()) {

            System.out.println(hit.getSource().get("name"));

        }

    }

}

Kodu dikkatli kullanın.

Bu örnekte, "my-index" adlı bir indekse "name" ve "location" alanlarına sahip bir döküman eklenir. Daha sonra, "location" alanı belirli bir koordinata yakın olan tüm dökümanları bulmak için bir SQL sorgusu çalıştırılır.


Not: Yukarıdaki kod sadece basit bir örnektir. Daha karmaşık sorgular için JDBC driver'ın dokümantasyonuna bakabilirsiniz.

Elasticsearch full-text search ve keyword search arasındaki fark nedir?




Elasticsearch'teki full-text search ve keyword field arasındaki farkları ve kullanım alanlarını açıklamaya çalışayım:


Full-text Search


Odak Noktası: Bir metin alanının (text field) içeriğine ve anlamına odaklı geniş kapsamlı arama yapma.

Veri Analizi: Metni kelimelere ayırır (tokenization), önemsiz sözcükleri kaldırır (stop words), köklerine indirir (stemming) ve benzer operasyonlarla aramayı zenginleştiren analizler uygular.

Sıralama: Sorgunuza uyan dokümanları bulmakla kalmaz, aynı zamanda içeriğin bu sorgu ile ne kadar alakalı olduğunu hesaplamak (relevance scoring) için gelişmiş teknikler kullanır.

Kullanım Alanları:

Web sayfalarının aranması

Makale, blog tarzı içeriklerin aranması

Ürün açıklamalarının aranması

Keyword Field


Odak Noktası: Metin alanını tam ve kesin değeriyle ele almak. Analiz aşaması içermediği için arama daha hızlıdır.

Doğru Eşleşme: Sadece kelimenin birebir aynı olduğu durumlarda eşleşme sağlar, aradığınız kelime metnin içinde geçse bile farklı bir formda işlenmişse bulunamaz.

Sıralama: Genellikle alaka düzeyi hesaplanmaz veya çok basit teknikler kullanılır.

Kullanım Alanları:

ID numarası, ürün kodu, kullanıcı adı gibi tam eşleşme gerektiren alanlar

Filtreleme işlemleri (örneğin kategoriye göre sonuçları listeleme)

Gruplama ve sıralama (aggregation) işlemleri

Örnek


Bir ürün aradığınızı düşünün:


Full-text search: "Kırmızı yazlık elbise" araması yaptığınızda;

"kırmızı" sözcüğünün analizi yapılır, benzer anlamlı sözcükler de (bordo gibi) dikkate alınabilir.

"elbise" kelimesi de benzerleri düşünülecek şekilde işlenir.

"yazlık" kelimesi mevsimi işaret ettiği için sonuçlara etki edebilir.

Dokümanlar ne kadar ilgili olduğu puanlanarak sıralanır.

Keyword field: "Kırmızı yazlık elbise" diye birebir keyword değeri olan ürünler bulunur. Diğer formlarda bu ifade geçen ürünler ("kırmızı renkli elbisesi" gibi) listelenmeyecektir.

Özetle:


Metnin içeriğini anlamak ve ilgili sonuçlar bulmak için full-text search kullanılır.

Sadece tam, kesin eşleşmenin önemli olduğu durumlar için keyword field tercih edilir.

Not: Elasticsearch'te her alanın hem keyword alt alanı hem de text alt alanı olabilir. Veri tipinize uygun olanı seçmek veya her iki şekilde de veri indekslemek  size bağlı seçimdir.

Elasticsearch inverted indices ve BKD trees indices nedir?

Merhaba. Elasticsearch'teki kritik veri yapıları olan Inverted Index ve BKD Tree index tiplerini açıklamaya çalışacağım.





Inverted Index (Ters Çevrilmiş İndeks)


Temel Çalışma Prensibi: Anahtar görevi, kelimelerin hangi dökümanlarda bulunduklarını takip etmektir. Bu tersine çevrilmiş bir yapıya benzer: Döküman kimlikleri yerine, her benzersiz kelime (term) için o kelimeyi içeren bir döküman listesi tutulur.

Text Verisi İndeksleme: Arama motorlarının kalbidir. Text verisindeki sözcükler ayrıştırılır (tokenize edilir), gereksiz sözcüklerden arındırılır (stopword removal) ve köklerine indirgenir (stemming). Bu işlenen sözcükler için ters index yapısı oluşturulur.

Hızlı Arama: Bir kelime aradığınızda, inverted index yapısı o kelimeyi hangi dökümanlarda bulabileceğini hızla söyleyebilir. Sonrasında bu dökümanlara daha detaylı bakılır ve ilgili dökümanlar sıralanarak sunulur.

Avantajları:


Text aramalarında çok hızlıdır.

Belirli bir kelimeyi içeren dökümanları bulmada etkilidir.

Dezavantajları


Sayısal veya coğrafi veri türleri için ideal değildir.

Depolama açısından yer kaplayabilir (özellikle yüksek frekanslı, benzersiz kelimelerin fazla olduğu durumlarda)

BKD Trees


Temel Çalışma Prensibi Çok boyutlu verileri etkili biçimde saklamak ve sorgulamak için özel bir ağaç veri yapısıdır. Sayısal, tarih, coğrafi konum vb. verileri verimli sorgulamak için kullanılır.

Çok Boyutlu Uzayı Bölümlere Ayırma: Veri noktalarını uzayda hiyerarşik olarak bölümlendirerek çalışır. Her seviyede, uzay bir eksen boyunca ikiye bölünür. Bu, benzer veri noktalarının kümelenmesini sağlar.

Hızlı Aralık Sorgulamaları: BKD ağaçları "bu coğrafi koordinatların 5 km çapındaki alanında neler var?" gibi aralık-tabanlı sorgulamalarda çok iyidirler.

Avantajları:


Sayısal, coğrafi, tarih gibi çok boyutlu verileri hızlıca sorgulama.

Aralık (range) ve yakınlık aramalarında verimli olma.

Dezavantajları:


Tek boyutlu text aramaları için inverted indexler kadar hızlı değildirler.

Elasticsearch Kullanımı


Elasticsearch akıllıca veri türlerinizi analiz eder ve uygun durumda:


Text verisi için inverted indexler kullanır.

Sayısal, coğrafi ve diğer çok boyutlu veriler için BKD ağaçları kullanır.

Özetle:


Inverted Index: Tam kelime aramalarında çok hızlı.

BKD Trees: Sayısal/coğrafi veri aramalarında ve aralık sorgulamalarında çok hızlı.

Rastgele İçerik

DonanımHaber

© tüm hakları saklıdır
made with by templateszoo