Cách tạo công cụ tìm kiếm bằng PHP và MySQL

Tại sao bạn lại muốn tạo một công cụ tìm kiếm? Hiện đã có một công cụ tìm kiếm để thống trị tất cả. Bạn có thể sử dụng Google để tìm bất kỳ thứ gì trên Internet và tôi nghi ngờ rằng bạn sẽ không bao giờ có được khả năng tính toán và lưu trữ giống như G lớn.

Vậy tại sao sau đó lại tạo ra công cụ tìm kiếm của riêng bạn? - Đương nhiên là để kiếm tiền!

…và trở nên nổi tiếng với tư cách là người tạo ra công cụ tìm kiếm lớn tiếp theo hoặc vì với tư cách là một lập trình viên hoặc kỹ sư, bạn thích thử thách. Tạo một công cụ tìm kiếm cho Internet công cộng là một việc khó và nếu bạn giống tôi, bạn muốn giải quyết những vấn đề phức tạp.

Ứng dụng thứ ba là một công cụ tìm kiếm trang web tốc độ cao, tùy chỉnh dành cho bạn với hàng nghìn trang web lớn. Công cụ tìm kiếm được lập chỉ mục sẽ nhanh hơn rất nhiều so với chức năng tìm kiếm toàn văn bản và nếu tìm kiếm trang web của Google không đủ linh hoạt cho trang web của bạn, bạn có thể tạo chức năng tìm kiếm của riêng mình.

CƠ BẢN CỦA TÌM KIẾM

Cơ sở của bất kỳ công cụ tìm kiếm LỚN nào là chỉ mục từ trên trang web, về cơ bản là một danh sách dài các từ và mức độ liên quan của chúng với các trang web khác nhau.

Để tạo một công cụ tìm kiếm, bạn phải làm bốn việc:

* Quyết định những trang nào cần tìm nạp và tìm nạp chúng
* Phân tích các từ, cụm từ và liên kết từ tranggoogle-tùy chỉnh-se
* Cho điểm cho mỗi từ khóa hoặc cụm từ khóa cho biết mức độ liên quan của cụm từ đó với các trang đó và lưu trữ điểm số trong chỉ mục của công cụ tìm kiếm
* Cung cấp cách để người dùng truy vấn chỉ mục và nhận danh sách các trang web phù hợp

Điều này không khó đối với một lập trình viên dày dạn kinh nghiệm. Việc này có thể được thực hiện trong một ngày nếu bạn biết các biểu thức chính quy và có một số kinh nghiệm về HTML và cơ sở dữ liệu.

Bây giờ bạn đã có một công cụ tìm kiếm đang hoạt động, chỉ cần thêm nhiều máy tính và ổ cứng là bạn sẽ sớm lập chỉ mục tất cả Internet. Nếu bạn chưa chuẩn bị sẵn sàng để đi xa đến thế thì một đĩa 50 terabyte sẽ chứa chỉ mục khoảng XNUMX triệu trang.

CÁCH ĐIỂM TRANG

Sau khi hoàn thành chức năng tìm kiếm cơ bản, sẽ có rất nhiều việc phải làm trước khi có người muốn sử dụng máy mới của bạn. Một chỉ mục là không đủ. Điều thách thức là làm thế nào để chấm điểm các trang để cung cấp cho người dùng cuối kết quả tìm kiếm phù hợp nhất với ý tưởng của họ về nội dung xin chào đang tìm kiếm.

Bạn sẽ cần phải quyết định mức độ quan trọng của từ khóa trong thẻ ô, mô tả và nội dung trang web chính. Để đạt được điểm cao, bạn cũng sẽ muốn tăng cường các từ khóa được tìm thấy trong URL của trang và kiểm tra văn bản liên kết của các liên kết trong nước. Theo dõi các liên kết trong nước là hữu ích nhất và thách thức nhất ở trên, bạn sẽ cần giữ một bảng cơ sở dữ liệu riêng với thông tin về tất cả các liên kết giữa các trang bạn lập chỉ mục.

NHỮNG GÌ LẬP CHỈ SỐ VÀ KHÔNG LẬP CHỈ SỐ GÌ

Những trở ngại khác mà bạn sẽ gặp phải khi bắt đầu lập chỉ mục nội dung Internet thực là có một lượng lớn rác vô dụng trôi nổi khắp nơi và cuối cùng chỉ mục của bạn sẽ trở nên đầy thư rác, các trang liên kết, tên miền trỏ hướng, các trang chủ đang hoạt động không có nội dung, liên kết các trang trại được sử dụng bởi các trình tối ưu hóa công cụ tìm kiếm, các trang web phản chiếu sử dụng nguồn cấp dữ liệu để tạo hàng nghìn trang có danh sách sản phẩm hoặc nội dung được sao chép khác, v.v.

Khi lập chỉ mục từ Internet bạn sẽ phải tìm cách lọc ra những nội dung rác khỏi những gì mọi người thực sự đang đọc và tìm kiếm. Để bắt đầu, bạn có thể giới hạn mức độ thu thập dữ liệu sâu vào các thư mục con, số bước nhảy liên kết từ một trang chỉ mục tên miền mà bạn thu thập dữ liệu và số lượng liên kết trên mỗi trang web được cho phép.

PHÂN TÍCH TRANG WEB

Có hàng triệu cách, cả đúng và sai để viết HTML và khi lập chỉ mục từ Internet, bạn sẽ cần phải xử lý tất cả chúng.

Khi phân tích từ khóa từ các trang, bạn không chỉ cần xử lý tiêu chuẩn HTML hoàn chỉnh mà còn phải xử lý tất cả các cách không chuẩn được trình duyệt Internet hỗ trợ không chính thức.

Để có thể đọc tất cả các trang, bạn cũng cần phải phân tích cú pháp javascript phía máy khách, xử lý các khung, CSS và iframe.
Đây là một phần lớn công việc trên một công cụ tìm kiếm nói chung, để có thể đọc tất cả các loại nội dung.

TẠI SAO NHIỀU URL?

Cuối cùng, bạn sẽ phải đối mặt với thực tế là nhiều trang web có nhiều URL trỏ đến cùng một trang web. Chỉ cần nhìn vào ví dụ này:

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

Tất cả các URL đó đều trỏ đến cùng một trang web. Nếu bạn không tạo mã đặc biệt để xử lý thì bạn sẽ sớm có 4 kết quả trong công cụ tìm kiếm của mình (một kết quả cho mỗi URL), tất cả đều chuyển đến cùng một trang. Người dùng sẽ không thích bạn.
Ngoài ra còn có khả năng xảy ra các chuỗi truy vấn trong đó ID phiên sau dấu chấm hỏi trong URL sẽ tạo ra các URL gần như vô hạn cho cùng một trang web.

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

Đối với công cụ tìm kiếm sẽ có một số lượng lớn các trang chứa cùng một nội dung. Tất nhiên, cách khắc phục nhanh là không lập chỉ mục các trang có chứa chuỗi truy vấn. Hoặc để loại bỏ chuỗi truy vấn khỏi các trang. Điều này có tác dụng nhưng cũng sẽ xóa nhiều nội dung hợp pháp (các diễn đàn) khỏi chỉ mục của bạn.

Bây giờ bạn có tất cả thông tin bạn cần để tạo một công cụ tìm kiếm trang web. Nếu bạn đang tìm kiếm một công cụ tìm kiếm Internet nói chung thì bạn cần đưa thêm rất nhiều chi tiết. Giống như robots.txt, sơ đồ trang web, chuyển hướng, người ủy nhiệm, nhận dạng các loại nội dung, thuật toán xếp hạng nâng cao cũng như xử lý hàng terabyte dữ liệu. Tôi sẽ trình bày chi tiết hơn trong một bài viết trong tương lai. Chúc may mắn với dự án công cụ tìm kiếm tiếp theo của bạn!

  1. Pingback:Các tweet đề cập đến TopTut.com – Các hướng dẫn hàng đầu » Cách tạo công cụ tìm kiếm bằng PHP và MySQL -- Topsy.com

  2. Pingback:TopTut.com – Hướng dẫn hàng đầu » Cách tạo công cụ tìm kiếm trong PHP … | Quảng cáo công cụ tìm kiếm trực tuyến

Được đóng lại.