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

Elasticsearch full-text search ve keyword field 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.

Hiç yorum yok

Rastgele İçerik

DonanımHaber

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