Cara Membuat Enjin Carian dalam PHP dan MySQL

Mengapa anda mahu membuat enjin carian pula? Sudah ada enjin carian untuk memerintah mereka semua. Anda boleh menggunakan Google untuk mencari apa sahaja di Internet dan saya ragu anda akan mempunyai keupayaan pengkomputeran dan storan yang sama seperti G besar.

Jadi mengapa membuat enjin carian anda sendiri? — Untuk membuat wang sudah tentu!

…dan menjadi terkenal sebagai pencipta enjin carian besar seterusnya atau kerana sebagai pengaturcara atau jurutera anda sukakan cabaran. Membuat enjin carian untuk Internet awam adalah rumit dan jika anda seperti saya, anda suka menyelesaikan masalah rumit.

Aplikasi ketiga ialah carian tapak berkelajuan tinggi yang disesuaikan untuk anda tapak web beribu-ribu halaman yang besar. Enjin carian yang diindeks akan menjadi lebih pantas daripada fungsi carian teks penuh dan jika carian tapak Google tidak cukup fleksibel untuk tapak anda, anda boleh membuat kefungsian carian anda sendiri.

ASAS PENCARIAN

Asas mana-mana enjin carian BIG ialah indeks perkataan ke halaman web, pada asasnya senarai panjang perkataan dan sejauh mana ia berkaitan dengan halaman web yang berbeza.

Untuk membuat enjin carian anda perlu melakukan empat perkara:

* Tentukan halaman yang hendak diambil dan diambil
* Menghuraikan perkataan, frasa dan pautan daripada halamangoogle-custom-se
* Berikan skor kepada setiap kata kunci atau frasa utama yang menunjukkan sejauh mana frasa itu berkaitan dengan halaman tersebut dan simpan markah dalam indeks enjin carian
* Sediakan cara untuk pengguna membuat pertanyaan terhadap indeks dan mendapatkan senarai halaman web yang sepadan

Ini tidak sukar untuk pengaturcara yang berpengalaman. Ia boleh dilakukan dalam sehari jika anda tahu ungkapan biasa dan mempunyai sedikit pengalaman dengan HTML dan pangkalan data.

Kini anda mempunyai enjin carian yang berfungsi, cuma tambahkan banyak komputer dan pemacu keras dan anda akan mengindeks semua Internet tidak lama lagi. Jika anda tidak bersedia untuk pergi sejauh itu, cakera satu terabait akan menyimpan indeks kira-kira 50 juta halaman.

BAGAIMANA MENSKOR HALAMAN

Selepas melengkapkan fungsi carian asas, terdapat banyak kerja sebelum sesiapa pun mahu menggunakan mesin baharu anda. Indeks tidak mencukupi. Apa yang mencabar ialah cara menjaringkan halaman untuk memberikan pengguna akhir hasil carian yang paling berkaitan dengan ideanya tentang perkara yang dicari oleh hi.

Anda perlu memutuskan berapa berat yang perlu diletakkan pada kata kunci dalam teg jubin, penerangan dan kandungan halaman web utama. Untuk membuat pemarkahan yang baik, anda juga ingin meningkatkan kata kunci yang terdapat dalam URL halaman dan menyemak teks utama pautan masuk. Menjejaki pautan masuk adalah yang paling berguna dan paling mencabar daripada perkara di atas, anda perlu menyimpan jadual pangkalan data yang berasingan dengan maklumat tentang semua pautan antara halaman yang anda indeks.

APA YANG NAK INDEX DAN BUKAN INDEX

Halangan lain yang anda akan temui apabila anda mula mengindeks kandungan Internet sebenar adalah hakikat bahawa terdapat banyak sampah tidak berguna yang terapung di mana-mana dan akhirnya indeks anda akan menjadi penuh dengan spam, halaman gabungan, domain yang diletakkan, halaman utama yang sedang berjalan tanpa kandungan, pautan. ladang yang digunakan oleh pengoptimum enjin carian, tapak cermin menggunakan suapan data untuk mencipta beribu-ribu halaman dengan penyenaraian produk atau kandungan lain yang dihasilkan semula dsb, dsb...

Apabila mengindeks daripada Internet, anda perlu mencari cara untuk menapis kandungan sampah daripada perkara yang sebenarnya dibaca dan dicari orang. Sebagai permulaan, anda boleh mengehadkan sejauh mana ke dalam sub direktori yang anda rangkak, bilangan lompatan pautan dari halaman indeks domain yang anda rangkak dan bilangan pautan bagi setiap halaman web yang dibenarkan.

PARSING LAMAN WEB

Terdapat sejuta cara, betul dan salah untuk menulis HTML dan apabila anda mengindeks daripada Internet, anda perlu mengendalikan kesemuanya.

Apabila menghuraikan kata kunci daripada halaman, anda bukan sahaja perlu mengendalikan standard HTML yang lengkap tetapi juga semua cara bukan standard yang disokong secara tidak rasmi oleh pelayar Internet.

Untuk dapat membaca semua halaman, anda juga perlu menghuraikan javascript sisi klien, mengendalikan bingkai, CSS dan iframe.
Ini adalah sebahagian besar kerja pada enjin carian umum, untuk dapat membaca semua jenis kandungan.

KENAPA BANYAK URL?

Akhir sekali, anda perlu berurusan dengan fakta bahawa banyak tapak web mempunyai banyak URL yang menghala ke halaman web yang sama. Lihat sahaja contoh ini:

dmoz.org
www.dmoz.org
dmoz.org/index.html
www.dmoz.org/index.html

Semua URL tersebut menghala ke halaman web yang sama. Jika anda tidak membuat kod khas untuk mengendalikannya, anda tidak lama lagi akan mempunyai 4 hasil carian dalam enjin carian anda (satu untuk setiap URL) semuanya akan ke halaman yang sama. Pengguna tidak akan menyukai anda.
Terdapat juga kemungkinan rentetan pertanyaan di mana ID sesi selepas tanda soal dalam URL akan mencipta URL yang hampir tidak terhingga untuk halaman web yang sama.

google.com?SID=4434324325325
google.com?SID=4387483748377
google.com?SID=7654565644466

Untuk enjin carian akan terdapat sejumlah besar halaman yang semuanya mengandungi kandungan yang sama. Pembetulan pantas sudah tentu adalah untuk tidak mengindeks halaman yang mengandungi rentetan pertanyaan. Atau untuk menanggalkan rentetan pertanyaan daripada halaman. Ini berfungsi tetapi juga akan mengalih keluar banyak kandungan yang sah (forum fikir) daripada indeks anda.

Anda kini mempunyai semua maklumat yang anda perlukan untuk membuat enjin carian tapak. Jika anda menggunakan enjin carian Internet umum, terdapat banyak lagi butiran yang perlu anda sertakan. Seperti robots.txt, peta tapak, ubah hala, proksi, mengenali jenis kandungan, algoritma kedudukan lanjutan serta mengendalikan terabait data. Saya akan membincangkan lebih terperinci dalam artikel akan datang. Semoga berjaya dengan projek enjin carian anda yang seterusnya!

Kategoriblog
  1. Ping balik:Tweet yang menyebut TopTut.com – Tutorial Teratas » Cara Membuat Enjin Carian dalam PHP dan MySQL -- Topsy.com

  2. Ping balik:TopTut.com – Tutorial Teratas » Cara Membuat Enjin Carian dalam PHP … | Promosi enjin carian dalam talian

Ruangan komen telah ditutup.