Cấu trúc tập tin chỉ mục nghịch đảo

Một phần của tài liệu Báo cáo đề tài "Tìm hiểu WAP và công cụ tìm kiếm hỗ trợ thiết bị di động" (Trang 95 - 98)

Tập tin nghịch đảo lưu trữ danh sách các tài liệu ứng với mục từđể cho hệ thống nhanh chóng tìm được danh sách các tài liệu có chứa một mục từ nào đó, tổ chức dưới dạng sau: Mục từ Tài liệu, trọng số T1 (2,w1), (3,w2), (4,w3) T2 (3,w4), (4,w5), (5,w6) T3 (2,w7) T4 (1,w9) Bảng 5.6-2: Bảng mục từ

Bảng trên có nghĩa là mục từ T1 xuất hiện trong các tài liệu 2, 3, 4 với các trọng số tương ứng là w1, w2, w3

Tập tin nghịch đảo được tổ chức bằng cách sử dụng một tập tin, trong đó dung lượng dành cho mỗi mục từ được cấp phát theo từng trang có kích thước cố định là 1024byte. Như vậy một trang có thể chứa 1024/8 - 1= 127 tài liệu (4 byte chứa DOCID, 4 byte chứa trọng số)

Cấu trúc một trang cấp cho từng mục từ trong file chỉ mục nghịch đảo như sau:

CHIỀU DÀI TÊN TRƯỜNG

4 NextPage 4 NextPos 4 docId1 4 weighT1 4 docId2 4 weighT2 4 docId3 4 weighT3 ……. …… 4 docIdn 4 weighTn

Bảng 5.6-3: Cấu trúc trang cho từng mục từ trong tập tin chỉ mục nghịch đảo

- NextPos: chỉ đến vị trí trống tiếp theo chưa được sử dụng trên trang này, chỉ có ý nghĩa khi đây là trang cuối.

- docIdi (i=1…n): định danh tài liệu có chứa mục từ sở hữu trang này, dựa vào định danh này có thể truy xuất thông tin liên quan đến tài liệu từ bảng định danh tài liệu.

- weighTi (i=1…n): trọng số của mục từ trong từng tài liệu tương ứng docIdi

Như vậy có thể đọc toàn bộ danh sách các tài liệu có chứa một mục từ bằng cách đọc toàn bộ các trang được liên kết theo con trỏ nextPage. Vấn đề còn lại là xác định trang đầu tiên trong chuỗi danh sách này. Giá trị trang đầu tiên được lưu trữ trong từđiển chỉ mục đã trình bày ở trên. Các thao tác chính trên tập tin nghịch đảo chỉ mục là:

- Thêm một tài liệu cho một mục từ: khi một tài liệu được lập chỉ mục, nếu tài liệu có chứa một mục từ t nào đó thì tài liệu này sẽđược thêm vào danh sách các tài liệu ứng với mục từ t trong tập tin nghịch đảo. Tài liệu được thêm vào vị trí trống đầu tiên trong trang cuối của mục từ t.

- Đọc danh sách của các tài liệu cho một mục từ: kết quả tác vụ này được thiết kế trả về theo luồng (stream) dưới dạng (docId1, weighT1, docId2, weighT2, ……, docIdn, weighTn) nghĩa là có thể đọc kết quả trả về theo từng tài liệu, xử lý xong tài liệu này mới đọc sang tài liệu tiếp theo. Việc trả kết quả theo luồng có ưu điểm lớn là giảm được dung lượng lưu trữ kết quả (chỉ cần một lượng bộ nhớ nhỏ bị chiếm dụng để là bộ đệm nhằm giảm bớt thao tác truy xuất file). Điều này là cần thiết vì danh sách các tài liệu tr3 về có thể rất lớn (hàng chục ngàn trzng với hàng MB bộ nhớ) và hệ thống hoạt động trên môi trường mạng nên phải xử lý rất nhiều yêu cầu đồng thời, dẫn đến việc hệ thống có thể bị cạn kiệt tài nguyên bộ nhớ nếu phải lưu trữ toàn bộ kết quả trong bộ nhớ. Với mô hình này dung lượng bộ nhớ bị chiếm dụng bởi một yêu cầu đọc danh sách các tài liệu trên file nghịch đảo không phụ thuộc vào số lượng kết quả trả về.

Mặt khác file nghịch đảo được truy cập thường xuyên khi xử lý yêu cầu tìm kiếm và thao tác đọc dữ liệu từ file nghịch đảo chiếm nhiều thời giannhất trong tổng số thời gian cần thiết để hoàn tất một yêu cầu tìm kiếm. Vì dung lượng file

nghịch đảo thay đổi, tăng theo thời gian và số lượng file đã xử lý nên nó có thể trở nên quá lớn, dẫn đến tình trạng không thể lưu toàn bộ file nghịch đảo vào bộ nhớ. Do đó để tăng tốc độ tìm kiếm, thực hiện cấp phát một vùng nhớ đóng vai trò bộ đệm cho thao tác đọc file này. Bộ đệm chi thành các trang với dung lượng bằng dung lượng một trang cấp phát cho từng mục từ 1KB. Khi có yêu cầu truy xuất một trang trong file nghịch đảo, trang cần sẽđược nạp lên bộđệm nếu chưa có trong bộ đệm và tồn tại ở đó để có thể sử dụng cho những lần truy xuất sau (không phải truy cập lại đĩa). Giải thuật thực hiện thay thế các trang trong bộ đệm là giải thuật lâu nhất chưa sử dụng.

Một phần của tài liệu Báo cáo đề tài "Tìm hiểu WAP và công cụ tìm kiếm hỗ trợ thiết bị di động" (Trang 95 - 98)