Akhir-akhir ini saya sedang sibuk mempelajari optimasi website, dan tiba-tiba saya tertarik dan mempelajari sekilas prinsip-prinsip SE. Setelah membaca artikel ini, pasti akan menjadi keuntungan besar bagi para SEOer peringkat yang lebih baik.
Masalah teknis yang perlu dipecahkan oleh mesin pencari umumnya dibagi menjadi program laba-laba + klasifikasi dan pengindeksan + kosakata + faktor algoritma pengurutan + pengindeksan dan optimasi basis data + struktur basis data
1. Laba-laba. Saat ini, tampaknya spider dapat diimplementasikan dalam C atau PHP. Sebagian besar laba-laba Baidu terbuat dari C. C juga dapat mendukung beberapa antarmuka koneksi database, dan efisiensi pengoperasian C lebih tinggi daripada PHP, dan C juga dapat mengontrol lapisan bawah dengan lebih baik. Meskipun C sangat bagus, saya tetap ingin menggunakan PHP. Waktu harus lebih dihemat, dan kita tidak bisa lagi mempelajari C. Jika Anda perlu menggunakan C di masa mendatang jika Anda memerlukan efisiensi tinggi, gunakan C lagi. Basis datanya bisa tetap tidak berubah, dan MYSQL bisa dihubungkan ke C. PHP memiliki kelebihan dan kekurangan. Seharusnya tidak menjadi masalah besar jika Anda seorang spider. Masalah terbesarnya adalah kecepatannya bisa sangat lambat. Saat meng-crawl halaman web, permasalahan yang mungkin timbul adalah urutan crawling, cara mencatat jika crawl tidak berhasil atau time out, dan kapan harus memperbarui crawl di lain waktu. Basis data mesin pencari pada awalnya baru, tanpa URL apa pun, dan sejumlah besar URL perlu ditambahkan. Anda dapat menggunakan pernyataan for loop di sini untuk melakukan loop secara otomatis sesuai dengan huruf bahasa Inggris. Tentu saja websitenya tidak hanya dalam bahasa Inggris, tapi juga angka-angka yang hanya bisa dimasukkan secara manual. Jika Anda masih mengambilnya dalam satu putaran, diperkirakan banyak yang akan gagal. Kode yang diambil perlu dianalisis untuk melihat apakah jenis pengkodeannya utf-8 atau gb2312. Jika waktu pengambilan habis, maka akan dicatat dan akan diambil lagi sekitar sepuluh hari kemudian. Jika waktu pengambilan habis tiga kali berturut-turut, maka akan dikeluarkan dari database.
2. Pembuatan indeks adalah masalah yang sangat sulit. Baidu dan Google dapat menggunakan server farm mereka sendiri untuk membangun server terdistribusi. Saya tidak punya banyak server. Jadi saya ingin mencoba pendekatan lain. Buat halaman statis. Saya tidak tahu sebelumnya bahwa dibutuhkan waktu sekitar 0,2 detik untuk memasukkan kata yang relatif tidak umum di Baidu dan Google, sedangkan kata umum hanya membutuhkan 0,1 detik. Selain itu, waktu kueri yang diperlukan untuk memasukkan kata berulang kali untuk kedua kalinya jauh lebih sedikit. Ini mungkin dampak dari indeks. Jika indeks ditempatkan di memori, kecepatan membaca akan sangat baik. Saya hanya memiliki satu server, dan meskipun saya hanya memasukkan indeks 50.000 istilah kueri umum ke dalamnya, itu mungkin akan sedikit melelahkan. Sebuah halaman harus berukuran minimal 20K, dan 50.000 halaman adalah 20K*50=1G. Ini hanyalah halaman pertama dari 50.000 kata. Jika pengguna ingin membalik halaman untuk query, memori pasti tidak akan cukup. Jika hanya halaman pertama yang dimasukkan ke dalam memori dan pengguna membalik halaman ke kueri, kecepatannya tidak akan meningkat. Jadi saya akan menjadi statis penuh. Simulasikan kueri 50.000 kata dan kemudian buat halaman statis. Halaman pertama dari semua kata ditempatkan di memori, dan halaman berikutnya ditempatkan di hard disk. Jika halaman tersebut dapat dimasukkan ke dalam memori, masalah ini akan terpecahkan.
3. Kosakata. Ada ribuan karakter Tionghoa, dan setidaknya ada 3.000 karakter Tionghoa yang umum digunakan. Diperkirakan ada 20.000 kata yang umum digunakan. Bagaimana cara menambahkan tesaurus ini? Dalam format apa harus disimpan? File CSV, database, atau file teks? Sebelumnya saya berpikir untuk mencari file tesaurus Kingsoft PowerWord dan mencoba menyalinnya secara langsung.
4. Semua algoritma yang mempengaruhi pengurutan harus ditempatkan dalam sebuah tabel. Lalu ada algoritma tetap, yaitu faktor dari website itu sendiri, dan algoritma variabel, yaitu faktor yang berubah karena kata-kata yang diinput oleh pengguna atau karena perbedaan waktu, musim, dan lain-lain. Algoritme tetap ditempatkan dalam tabel dan skor total dihitung untuk setiap situs web. Sebagian dari algoritme perubahan telah dibuat sebelumnya, dan sebagian lagi dihitung setelah masukan pengguna.
5. Saat ini tidak ada solusi yang baik untuk pengindeksan database. Indeks ekspresi tidak boleh terlalu banyak, karena terlalu banyak akan mempengaruhi kecepatan.
6. Struktur basis data. Ini sangat penting. Diperkirakan struktur database harus diselesaikan sebelum antarmuka front-end situs web keluar. Penting juga untuk meninggalkan antarmuka untuk peningkatan di masa mendatang, seperti menambahkan faktor algoritme, atau mengubah bidang untuk mengoptimalkan pernyataan kueri, dll. Struktur awalnya seperti ini. 1-3 tabel menyimpan informasi situs web. Bidang pertama adalah kunci utama yang bertambah secara otomatis, bidang kedua adalah alamat beranda situs web, dan secara berurutan adalah waktu pendaftaran nama domain situs web, waktu pengumpulan, waktu cuplikan terakhir, jumlah total halaman yang disertakan, jumlah byte pada beranda, klasifikasi nama domain (com/cn/org/net/gov/edu), jumlah total backlink, klasifikasi situs web (bisa 1-10, portal bisa diperluas hingga 30), dll.
Artikel ini direproduksi dari: www.jianfeiyiqi.com Harap sebutkan sumbernya dengan tautan.