Indexing
Giả dụ có một số lượng lớn các file, và yêu cầu đặt ra là liệt kê những file nào có chứa từ hay cụm từ được cho trước. Làm thế nào viết chương trình để thực hiện yêu cầu này? Một cách dễ dàng nhất mà ai cũng có thể nghĩ ra là lần lượt duyệt qua tất cả các file và so khớp nội dung với từ khóa. Hướng giải quyết này là hoàn toàn chính xác, tuy nhiên nó chỉ phù hợp khi dung lượng các file là nhỏ, vì tốc độ xử lý của nó phụ thuộc vào độ lớn của các file. Đây là lý do có khái niệm indexing. Giải pháp để tìm kiếm một số lượng lớn văn bản nhanh chóng là đánh chỉ mục cho văn bản và chuyển nó thành định dạng cho phép việc tìm kiếm diễn ra rất mau lẹ, hạn chế sự chậm trễ trong việc duyệt file tuần tự. Quá trình chuyển đổi như trên được gọi là indexing, và kết quả mà nó trả lại được gọi là index.
Index được xem như cấu trúc dữ liệu cho phép truy cập ngẫu nhiên đến từ hay cụm từ mà nó chứa. Khái niệm này cũng tương tự như chỉ mục ở phần cuối mỗi quyển sách, cho phép định vị các trang thảo luận về một chủ đề cụ thể.
Đi sâu hơn, indexing bao gồm hai bước tuần tự: analyze document và index document. Hai bước này được trình bày rõ hơn sau đây.
1. Analyze Document
Không search engine nào đánh chỉ mục văn bản trực tiếp, thay vào đó, văn bản phải được chia nhỏ thành các thành phần nguyên tử gọi là token. Đó là những gì diễn ra trong bước analyze document. Mỗi token gần giống như một từ trong ngôn ngữ tự nhiên, bước này quyết định làm thế nào chia các field văn bản trong document thành các chuỗi token. Một vài vấn đề thú vị có thể xảy ra như:
· Cách xử lý từ ghép thế nào?
· Có nên tự động sửa lỗi nếu nội dung bị sai chính tả hay không?
· Có nên chèn từ đồng nghĩa vào trong chuỗi token để với từ khóa laptop cũng sẽ trả về các sản phẩm tương đương như netbook hay không?
· Có xem các dạng số ít – số nhiều (cat – cats), hay các thì hiện tại – quá khứ (eat – ate) là một hay không?
· Trong những ngôn ngữ không thuộc dòng Latin, định nghĩa một từ là như thế nào?
2. Index Document
Đây là bước cuối cùng trong quá trình indexing. Khi chuyển về chuỗi token, document được thêm vào trong index và sẵn sàng để được tìm kiếm. Quá trình indexing chỉ thật sự có ý nghĩa đối với người quản trị hệ thống, là cơ sở để có được những kết quả tốt. Đối với người dùng cuối, họ chỉ quan tâm đến những trải nghiệm và không cần biết bên dưới hệ thống hoạt động như thế nào.

No comments yet.