Birisi beni doğru yöne yönlendirebilir mi? Gerçekten kod yazma deneyimim yok ama hızlı öğreniyorum. Kolay olacağını söylemeye çalışmıyorum ama umarım biri bana yardım edebilir ...
Birisi beni doğru yöne yönlendirebilir mi? Gerçekten kod yazma deneyimim yok ama hızlı öğreniyorum. Kolay olacağını söylemeye çalışmıyorum ama umarım biri bana yardım edebilir ...
Yanıtlar:
Ben ne zaman geri dönmek için kullanılan bir blog için bu yazdım .... artık web üzerinde değil yani işte burada! :
Arama motoru nasıl yazılır
Probolgger.net de Darren Rowse, "Nasıl Yapılır" konusunda bir Grup Yazma Projesi düzenliyor. Bu, düzenli olarak okuduğum birkaç blogdan biri, bu yüzden neden bir değişiklik için okumaya değer bir şey yazmıyorum, daha ziyade boğazda Hugo Chaves'i bıçaklamakla tehdit edeceğim standart şiddet aralığım var.
"Arama motoru nasıl yazılır" yazmaya karar verdim. Bu konuyu iki nedenden dolayı seçtim:
Müvekkilim önemli boyutta bir çevrimiçi perakendecidir, bu yüzden tüm web'i sadece kendi sitelerinde, daha özel olarak sadece kendi sitelerinde satılık ürünleri aramıyorum. Hiçbiri daha az aynı teknikler internette arama yapmak için kullanılan daha karmaşık teknikler yazmak için kullanılamaz. Bunun bir teknoloji blogu olmadığını biliyorum, bu yüzden teknik özelliklerin çok derinine gitmeyeceğim, ne de donanım \ işlem gücü gereksinimlerini veya web taramasını tartışmayacağım.
Oldukça basit bir teknik kullanıyorum, üç alana sahip tablo (tblKeywords) var:
Yaptığım ilk şey, alakalı olan herhangi bir yerden bireysel kelimeler toplamak. Müvekkilim için ürünleri tabloya kelimeler çekeceğim. Özellikle Itemid, ItemName, ItemShortDescription, ItemLongDescription, Üretici, ÜreticiSKU, Category1, Category2, Category3 vb alanlarından. Web sayfalarını dizine ekliyorsanız, sayfa metninden, sayfa başlığından, URL'den veya dizine eklenen sayfaya geri bağlantı veren diğer sayfalardaki bağlantılardan veri alabilirsiniz.
Ağırlık değeri, anahtar kelimenin nereden geldiğine göre belirlenir. Örneğin benim durumumda Öğe Üretimi'nin SKU'su 100 ağırlık alırken, Öğe adından bir kelime 25 ağırlık alabilir. ItemLongDescription öğesinden bir kelime 5 ağırlık alabilir. Web sayfalarını dizine ekliyorsanız kelimeler sayfa başlığından 75 ağırlık alabilirken, sayfa metninden kalın harflerle yazılmış bir kelime 10 kilo alabilir. Bir kelime birden fazla veya \ ve birden fazla yerde tekrarlanırsa, her seferinde ağırlığı toplarsınız gerçekleştiği. Örneğin "Gömlek" kelimesi ItemId = 12345 için iki yerden geliyorsa, ItemName (ağırlık 25) ve ItemLongDescription öğesinde (5 x2 = 10 ağırlık) iki kez görünüyorsa "gömlek" kelimesinin ItemId için toplam ağırlığı 35 olur. = 12345.
Bazıları "pembe gömlek" için arama yaparsa "Pembe" veya "Gömlek" kelimelerinin tüm örneklerini arayabilirim ve toplam ağırlıkları toplam. Toplam ağırlığı en fazla olan ürünler üstte gösteriliyor.
SQL:
Select Itemid, sum(weight) as totWeight from tblKeywords
group by itemId having keyword in ('pink','shirt')
İşte burada, temel (ve hızlı) bir arama motoru var. Tabii ki noktalama işaretleri, HTML Kodu ve "ve", "if", "veya" gibi değersiz anahtar kelimeler gibi daha yapılacak çok şey vardır. Bu, Anahtar kelime öbeklerini aramayı ele almaz, ancak nerede başlayacaklarını ve biteceklerini anlayabiliyorsanız, öbekler için benzer bir sistem kullanabilirsiniz.
Özgürce dağıtılmış Bilgi Edinme Giriş taslağı, ana referans materyaliniz olacaktır. Temelden ileri düzeye kadar arama (bilgi alma) işler.
Arama motorları web tarayıcıları üzerine inşa edilmiştir , sonuçlarını görüntülemek için bir web sitesi geliştirmeden önce bu enayilerden birini nasıl oluşturacağınızı anlamanız gerekir (bununla birlikte gitmek için hızlı, verimli bir veritabanına ihtiyacınız olacak).
Bu, CS'ye 20. sınıfta başlayacak bir giriş dersidir, kontrol etmenizi öneririm, ücretsiz olarak sunulur.