Belge arama, öncelikle yapılandırılmamış serbest metin üzerinde (yalnızca belgelerde değil) çalışan aramadır. İster bir web sayfası arayın ister bir ürün bulun ister özenle seçilmiş bir içerikle çalışın, bu işlemi yapmak için bir arama motoru kullanırsınız. Bir web sayfasına gelip Arama metin kutusuna yazarsınız. "Ara" seçeneğine tıkladığınızda bulmaya çalıştığınız bilgilerle ilgili öğelerin karşınıza çıkmasını beklersiniz.

Arama motorları, veritabanı teknolojisinden ortaya çıkmıştır. Bu motorlar verileri depolar ve bu verilere karşı sorguları işler. Geleneksel veritabanları, öncelikle yapılandırılmış içeriklerle çalışır. Veriler, yerleşik şemalar kullanılarak tablolar ve sütunlar biçiminde düzenlenir. Veritabanının görevi, sütunlardaki değerlerle eşleşen sorgulara göre tüm veri satırlarını almaktır. Arama motorları, hem meta verileri hem de yapılandırılmamış metinlerden (serbest metin) oluşan büyük blokları içeren yapılandırılmış verilerle (belgeler) çalışır. Arama motorları, dil kurallarını kullanarak bu büyük metin bloklarını eşleştirilebilir terimlere ayırır. Arama motorları, aynı zamanda sonuçları sıralamak ve en iyi sonuçları en üste taşımak için yerleşik bir sıralama özelliğine sahiptir. İlişkisel ve NoSQL veritabanları tüm sonuçları alır, arama motorları ise en iyi sonuçları alır.

Arama motorlarının uygulamaları üç büyük kategoriye ayrılır: belge arama (öncelikle yapılandırılmamış serbest metinler üzerinde çalışır), e-ticaret araması (yapılandırılmış ve yapılandırılmamış verilerin bir birleşimi üzerinde çalışır) ve sorgu boşaltma (daha çok yapılandırılmış veriler üzerinde çalışır).

Belge arama, meta verilerle nasıl çalışır?

Belge aramada, bir paragraf kadar küçük ve binlerce sayfa kadar büyük olabilen ana belge için arama yaparsınız. Belgeler, hem yapılandırılmamış metin alanları (başlık ve özet), yarı yapılandırılmış alanlar (yazar) hem de yapılandırılmış alanlar (yayın tarihi, kaynak grup, kategori), meta veriler dahil olmak üzere çeşitli alanları içerir. Arama motoru, kullanıcı sorgularında metin ve meta verilerin bir karışımını ele alır.

Belge aramanın başlıca zorlukları ikiye ayrılı: veri hazırlayıp alma ve arama alaka düzeyi.

Belge arama kullanım örneklerinde, belgelerin gövdesi (korpus), kullanıcı tarafından oluşturulan veya diğer düzenlenmemiş içeriklerden oluşur. Bu içeriklerde genellikle yazım hataları veya başka hatalar, tekrarlar ve anlamsız veriler yer alır. Bu verileri bir arama motoruna yüklemeden önce seçmeniz, temizlemeniz ve normalleştirmeniz gerekir. Veriler hazırlandıktan sonra, bu verileri motora yüklemeniz (alım API'lerini çağırarak) gerekir. Son olarak, belgeleri değiştikçe güncellemek için bir sürece ihtiyaç duyarsınız.

Belge aramanın temel değeri, kullanıcının sorgusuyla alakalı belgeleri (arama alaka düzeyi) getirmektir. Arama motoru, sonuç getirme sırasında eşleşen tüm belgeleri istatistiksel bir ölçümle (BM25) puanlar ve sıralar. BM25, eşleşen belgelerdeki sayılarıyla kesişen arama teriminin benzersizliğini kullanır. Sorgu ne kadar çok benzersiz terimle eşleşirse puanı o kadar yüksek olur. Özel veri kümeniz için puanlama işlevini ayarlamanız gerekir. Makine öğrenimi (ML) teknikleri, sıralamanızı iyileştirmenize yardımcı olur. Arama, yalnızca getirdiği belgelerin alaka düzeyi kadar iyidir ve en iyi sonucu almak istersiniz.

Diğer arama kullanım örnekleri nelerdir?

E-ticaret araması 

Bir katalogdaki ürünleri bulmak ve satın almak için bir e-ticaret motoruna gidersiniz. Bu ürünler; başlık, ürün açıklaması ve değerlendirmeler gibi daha uzun alanların yanı sıra boyut, renk, marka vb. gibi pek çok meta veri alanını içerir. Motorun birincil görevi, gelir getiren en alakalı sonuçları getirmektedir. Site tasarımcıları, iyi bir alaka düzeyi işlevi oluşturmak için gömülü, sayısal değerlerden kullanıcı davranışına dayalı ML modellerine kadar pek çok araçtan yararlanır.

E-ticaret siteleri, son kullanıcı deneyimini iyileştirmek için sıklıkla ayrıntılı arama ekler. Motor, çeşitli alanlardaki (boyut, renk vb.) değerler için gruplanmış bir sayı sunar ve kullanıcı arabirimi, kullanıcılara sonuçları daraltmak için kullandıkları tıklanabilir bir liste sağlar.

E-ticaret aramasının bazı türleri, büyük oranda kişiselleştirme ve tavsiyelere dayalıdır. Bir müşteri "elbise" sözcüğünü aratırsa sorgunun kendisi oldukça açık uçlu olsa bile arama motoru, müşterinin ilgilenebileceği elbiseleri bulmalıdır. K-en yakın komşu (k-NN) gibi benzerlik ölçümleri bu konuda yardımcı olur.

Seçilmiş veri kümesi arama

Kurumsal belge deposu (klinik deney verileri, kanuni dava özetleri, gayrimenkul vb.) gibi seçilmiş bir veri kümesi araması. Arama motorları, eşleştirmek üzere büyük metin bloklarını bileşen terimlerine (bir alan veya büyük bir metin bloğundaki sözcükler) ayırmalarına yardımcı olan dil kuralları ve dile özgü başka özellikler içerir. Zengin sorgu dili, "uzun kolsuz elbise" gibi terim kombinasyonları için bu büyük metin bloklarını arama yapmaya olanak tanır. Ancak motor, eşleşen her şeyi getirmez: Belgeleri sıralamak ve derecelendirmek için alaka düzeyi puanlamasını kullanır ve yalnızca en iyi eşleşmeleri getirir.

Sorgu yükünü boşaltma

Arama motorları; yüksek hacimli, düşük gecikmeli aramayı kolaylaştırmak için uzman veri yapıları içerir. Bu yapıların en önemlisi, terimleri bu terimleri içeren belgelerin listesiyle eşleştiren ters dizindir. Bu veri yapıları nedeniyle, arama motorları sorgu işleme için ilişkisel veritabanlarından daha iyi performans gösterir. Burada ödün verilen şey, arama motorlarının ilişkisel olmamasıdır. İkili bir ilişkisel veritabanı ve arama motoru görmek yaygındır. Uygulama verilerini sunmak için ilişkisel veritabanını ve bu veriler arasında düşük gecikmeli, alakalı arama sağlamak için bir arama motorunu kullanırsınız.

Zengin ve güzel bir arama deneyimi için pek çok iş fonksiyonu gerekir. Geliştiriciler bir arama çözümünü entegre eder, bir arama arabirimi oluşturur ve en iyi arama sonuçlarını elde etmek için verilerin nasıl yapılandırılacağını anlar. Ürün yöneticileri, meta veri yapısı ve arama arabirimi kullanıcı deneyimlerine ilişkin gereksinimleri sağlar. Veri bilimciler, kullanıcı davranışlarını izlemenin ve bunlarla çalışmanın yanı sıra kaynak verilerini de özenle seçer. Yöneticiler, motor için iş hedeflerine ulaşmada ürün ve geliştirme ekiplerine rehberlik eden iş KPI'ları belirler.

Arama motorları, terimleri eşleştirmek üzere optimize edilmiştir. "8 ayaklı koltuk" için arama yaptığınızda 8 ayaklı koltuk sonuçlarını görürsünüz ve bu, "8", "ayaklı" ve "koltuk" sözcüklerinin eşleştirilmesiyle bulunur. Buna anahtar sözcük arama denir. Arama yapan kişiler, çoğu durumda aradıkları şeyin tam karşılığını bilmez ve anlama göre arama yapmak ister. Buna semantik arama denir ve bu, arama ve ML teknolojilerinin sınırıdır. Semantik aramada, "ateşin yanında oturulacak rahat bir yer" için arama yaptığınızda 8 ayaklı koltuk gibi eşyaları görürsünüz.

Semantik arama için makine öğrenimi teknikleri gerekir. Öğeler ve sorgulardan oluşan bir vektör alanı oluşturmalı ve ardından bu alandaki yakın öğeleri bulmak için vektör benzerlik hesaplamalarını kullanmalısınız. Vektör aramada, bir belgenin alakalı olması için bir sorguyla ortak bir sözcüğe veya eş anlamlı sözcüğe ihtiyacı yoktur. Örneğin, ML algoritması, "vites yağlama"nın genellikle bisiklet bakımıyla ilgili konulara yakın göründüğünü bildiğinden "bisiklet bakımı"na ilişkin bir arama, "vites yağlama" hakkındaki bir belgeyle eşleşebilir.

Arama sonuçlarınızı nasıl iyileştirebilirsiniz?

Etkili belge ve e-ticaret aramasının anahtarı alaka düzeyidir. Arama sonuçları, arayanın ihtiyaçlarını karşılıyor mu? Arama motorları, çeşitli teknikler kullanarak en iyi sonuçları en üst sırada göstermeye çalışır. Buna alaka düzeyi sıralaması denir. Veritabanları, eşleşen her şeyi gösterirken, arama motorları alakalı içerikleri puanlamak üzere optimize edilmiştir.

  • Aramanız, farklı ağırlıklara sahip birden çok alanı kapsayabilir. Örneğin, bir film veritabanını arıyorsanız başlık, yönetmen ve oyuncu gibi alanları kapsamanız ve başlık eşleşmelerine oyuncu eşleşmelerinden daha fazla ağırlık vermeniz gerekir.
  • Arama sonuçlarınızı, yeniliğe göre ayarlamanız da faydalı olabilir. Dizininize bir yayınlanma tarihi alanı ve puan işlevinize bu tarihe dayalı bir üstel azalma işlevi ekleyin.
  • Kullanıcılarınızın belirli unsurları incelemesine yardımcı olmak için arama sonuçlarınıza modeller veya filtreler eklemeniz faydalı olabilir. Çoğu belge arama sistemi, genellikle arama sonucu sayfasının sol tarafında kategoriler olarak sunulan meta veriler üzerinde ayrıntılı aramayı destekler.
  • Eş anlamlı sözcükleri eklemeniz faydalı olabilir. Eş anlamlı sözcükler, son kullanıcılarınızın aradığı sonuçları bulmasına yardımcı olabilir. Giyimde, t-shirt ve tişört aynı şeyi ifade eder. Son kullanıcılarınız, "t-shirt" veya "tişört" sözcüklerini arattığında aynı sonuçlarla karşılaşmalıdır. Eş anlamlı sözcükleri eklemek, bu sonuçları getirebilir.

Belge arama birçok farklı uygulamayı kapsar.

  • E-ticaret siteleri, kullanıcılarının satın almak istediği ürünleri getirmek için belge aramayı kullanır.
  • Fotoğraf siteleri, fotoğrafları başlık ve açıklama gibi meta verilere ve hatta eşleşen görüntü vektörlerine dayalı olarak bulmak için belge aramayı kullanır.
  • Hukuk kullanıcıları, alakalı dava yasasını bulmak için belge aramayı kullanır.
  • Doktorlar, belge aramayı kullanarak hastalarının durumuna uygun ilaçları bulur.
  • Müşteri İlişkileri Yönetimi (CRM) çözümleri; notları, etkileşimleri ve hedeflenecek müşterileri bulmak için belge aramadan yararlanır.

Bir şey bulmanız gerektiğinde, bir arama motoru kullanın!

AWS belge arama için sonraki adımlar

Ücretsiz bir hesap için kaydolun

AWS Ücretsiz Kullanım için anında erişim elde edin. 

Kaydolun 
Konsolda oluşturmaya başlayın

AWS Yönetim Konsolu'nda oluşturmaya başlayın.

Oturum açın