1.7.3. Khó khăn, thách thức
Về mặt khái niệm, xây dựng chỉ mục ngược kéo theo việc xử lý từng trang Web để tách ra các postings, sắp xếp chúng trước nhất theo các thuật ngữ và tiếp đến là theo
location, tạo thành các danh sách đảo đã sắp xếp và ghi lên đĩa. Đối các với bộ sưu tập nhỏ và cố định (static), giống như môi trường mà các hệ thống IR nghiên cứu, thời gian xây dựng chỉ mục không đáng ngại. Tuy nhiên, đối mặt với bộ sưu tập Web, xây dựng chỉ mục theo sơ đồ đơn giản sẽ trở nên không thể quản lý được và cần có tài nguyên khổng lồ, và thông thường mất hàng ngày đến vài ngày để hoàn thành.
Hơn nữa, do nội dung của Web thay đổi nhanh chóng, việc crawl định kỳ và xây dựng lại chỉ mục là cần thiết để đảm bảo sự tươi của dữ liệu. Xây dựng lại chỉ mục trở nên cần thiết vì các kỹ thuật cập nhật chỉ mục tăng nhanh nhất thực thi một cách chậm chạp khi đối mặt với sự thay đổi đồng loạt được giám sát bởi các lần crawl liên tiếp.
Cuối cùng, định dạng lưu trữ cho chỉ mục ngược phải được thiết kế cẩn thận. Một chỉ mục đã được nén nhỏ cải thiện hiệu năng truy vấn bằng cách cho phép các phần có kích thước lớn của chỉ mục có thể lưu lại trong bộ nhớ (cached in memory). Tuy nhiên, có sự cân bằng giữa hiệu năng đạt được và quá trình giải nén tương ứng tại thời điểm truy vấn. Để đạt được sự cân bằng là một thách thức lớn khi đối mặt với bộ sưu tập Web.
Xây dựng chỉ mục ngược cho Web cần phải có một kiến trúc đánh chỉ mục tỷ lệ và phân tán mức cao. Trong môi trường này, có hai chiến lược cơ bản cho việc phân tán chỉ mục ngược giữa các tập các nút. Trong tổ chức file chỉ mục ảo cục bộ (Local inverted file - IFL), mỗi nút đáp ứng cho một tập con rời rạc của các trang Web trong bộ sưu tập. Một yêu cầu truy vấn sẽ được gửi cho tất cả các nút, mỗi nút sẽ trả về kết quả là danh sách rời rạc các định danh của các trang Web chứa các thuật ngữ cần tìm.
Tổ chức file chỉ mục ngược toàn cục (Global inverted file - IFG) phân tán các thuật ngữ sao cho mỗi máy truy vấn (query server) chỉ lưu trữ danh sách đảo của một tập con các thuật ngữ trong bộ sưu tập. Ví dụ, trong hệ thống có 2 servers: A và B. A lưu trữ danh sách đảo của tất cả các thuật ngữ bắt đầu với các chữ cái từ a-q trong khi B lưu trữ danh sách của các thuật ngữ còn lại. Vì thế yêu cầu tìm kiếm thuật ngữ “process” (bắt đầu bằng chữ cái “p”) chỉ liên quan đến A.
1.8. TÌM KIẾM
Như đã trình bày trong hình 1, bộ máy truy vấn thực hiện việc thu thập các term do người dùng nhập vào thông qua giao diện của Search engine. Các truy vấn sẽ được tiền xử lý để tách ra các term rồi thực hiện tìm kiếm trên chỉ mục. Các kết quả thỏa mãn được xếp hạng và hiển thị cho người dùng. Công việc này thực hiện Online và đòi hỏi thời gian xử lý cho mỗi truy vấn là ngắn. Những công việc được làm trong suốt quá trình là
a. Phân tích truy vấn:
Yêu cầu tìm kiếm (các từ khóa mà người dùng gõ vào) được phân tích trước khi tìm kiếm. Truy vấn có thể là một biểu thức logic của các term, có thể chứa các ký pháp đặc biệt của Search Engine nhằm khoanh vùng tìm kiếm (chẳng hạn như chỉ dẫn url: _URL_ sẽ tìm kiếm Web site có URL được chỉ sẵn). Phân tích truy vấn sử dụng một số giải thuật trong IR (ví dụ như giải thuật stemming) để thu được kết quả chính là danh sách các term. Việc phân tích câu truy vấn người sử dụng là rất quan trọng, bởi vì đó chính là yêu cầu của công việc tìm kiếm, là thước đo của cả công cụ. Với những ngôn ngữ là tiếng Ấn- Âu thì dấu cách chính là ký hiệu để phân biệt các từ khóa với nhau, còn với tiếng Việt, dấu cách không phải là dấu hiệu để phân biệt các từ khóa. Chi tiết về các vấn đề liên quan đến tìm kiếm tiếng Việt sẽ được trình bày ở mục sau
b. Tìm kiếm:
Với danh sách term thu được, bộ máy truy vấn thực hiện tra cứu trên chỉ mục ngược, tương ứng với một term được chọn, ta sẽ có một danh sách các văn bản có chứa term đó. Như vậy ta sẽ thu được một tập hợp các danh sách các văn bản có thể thỏa mãn yêu cầu truy vấn. Tuy nhiên, việc chọn ra một tập con các văn bản thực sự phù hợp với truy vấn trong danh sách các văn bản vừa thu được như thế nào được thì lại phụ thuộc vào cách chọn cách mô hình trong tìm kiếm. Như đã trình bày ở trên
(mục …) người ta có thể có các cách mô hình là boolean, vector… Với mỗi cách mô hình, ta sẽ kiểm tra xem văn bản vừa được chọn ra có phù hợp với truy vấn hay không ? Độ đo giữa sự phù hợp của chúng là thế nào… Từ đó ta tìm được một danh sách thường là rất dài những văn bản phù hợp với câu truy vấn người sử dụng
4 2 1 Xin chào 5 6 9 11 5 3 1 các 6 7 9 10 4 2 1 bạn 5 9 10 11 9 5 1 Xin chào các bạn 6 5 1 Xin chào các 9 5 2 1 Xin chào bạn 9 11
Query: Xin chào các bạn
Query: Xin chào các
Query: Xin chào bạn