Elasticsearch Nasıl Çalışır?
Bir önceki yazıda Elasticsearch tanımını, temel kavramları ve veri tiplerini incelemiştik. Bu yazımızda indexleme işleminin nasıl gerçekleştiğine değinecegiz.
Nasıl çalıştığını kavramak için daha önce okumadıysanız bir önceki yazıyı incelemek için aşağıdaki linke tıklayın.
-> Elasticsearch’ü Docker üzerinde çalıştırma
-> Elasticsearch ile Index Oluşturma ve Arama
-> PHP ve GO ile Elasticsearch kullanımı
Indexleme işlemi nasıl gerçekleşir?
Veri türlerini de kısaca tandıktan sonra nasıl indexleme yapılır konusuna geçebiliriz.
Elasticsearch’e text türünde bir veri geldiğinde kaydedilmeden önce belli bir analiz aşamalardan geçmektedir. Bu süreç tokenization ve normalization olan aşamalardan meydana gelir.
Tokenization yani parçalama:
Aşağıdaki örnekte <p> etiketleri arasında bir metin düşünelim. İlk olarak html etiketleri temizlenir. Daha sonra metin boşluklardan parçalara ayrılır. Daha sonra stop wordsler temizlenir. (The, and, or, ve, veya). Kalan metinlerin tamamı küçük harfe çevirilir ve en sonunda bir index terimleri oluşur. En son oluşan dizi içerisindeki her terime token adı verilir.
Normalization:
Bu aşamada tokenlar eş anlamlı ve kökleri ile normalize edilir.
Örnegin quick kelimsei zaten kök oldugu için eş anlamlısı fast kelimesi, jumps kelimeisinin kökü jump, eş anlamlıraı spring, vault, hop, skip gibi kelimeler indexlenir. Kısaca kelimenin kendisi, kökü ve eş anlamlıları da index tablolarına dahil edilir.
Tokenization ve normalization süreçleri özelleştirilebilir ve bunu destekleyen bir çok eklenti de bulunmaktadır.
Inverted İndex
Bu süreçlerden geçen veriler ters index (inverted index) tablolarına kaydedilir. Aşağıdaki görselde inverted index örnegi verilmiştir.
Keyword, date, boolean ve numeric türlerde inverded index’de saknalır ancak karşılaştırma ve aralık aramaları için ekstra veriler ile bilrlikte saklanır.
Tanımlar iyidir, ancak pratiğe dökmetikce hiç bir değeri yoktur, şimdi adım adım index oluşturma, mapping, veri saklama ve arama gibi işlemleri örnekler ile yapacagız.
Sonraki yazımızda Elasticsearch’ü docker üzerinde nasıl çalıştırabiliriz, örnekler ile birlikte inceleyecegiz.