Trong hình thức cơ bản của nó, một chỉ mục ngược bao gồm danh sách tin đăng, một liên kết với từng kỳ hạn xuất hiện trong bộ sưu tập. Cấu trúc của một chỉ mục ngược được minh họa trong hình. Một danh sách đăng bao gồm những bài viết cá nhân, mỗi trong số đó bao gồm một id tài liệu và trọng số - thông tin về lần xuất hiện của thuật ngữ trong tài liệu. Trọng số đơn giản nhất là... không có gì! Với simple boolean retrieval, việc không có thêm thông tin là cần thiết trong việc đăng khác với id tài liệu; sự tồn tại của bản thân việc gửi bài cho thấy sự hiện diện của các thuật ngữ trong tài liệu. Trọng số phổ biến nhất, tuy nhiên, là tần số hạn (tf), hoặc số lần thuật ngữ xảy ra trong tài liệu. Trọng tải phức tạp hơn bao gồm các vị trí của mỗi sự xuất hiện của thuật ngữ trong tài liệu (để hỗ trợ cụm từ truy vấn và ghi tài liệu dựa trên term gần), tính chất của thuật ngữ (chẳng hạn như nếu nó xảy ra trong tiêu đề trang hay không, để hỗ trợ bảng xếp hạng tài liệu dựa trên khái niệm quan trọng), hoặc thậm chí kết quả xử lý ngôn ngữ bổ sung (ví dụ, chỉ ra rằng term là một phần của tên địa điểm, để hỗ trợ tìm kiếm địa chỉ). Trong bối cảnh web, thông tin văn bản (anchor text information) (văn bản liên quan đến các siêu liên kết từ các trang khác trang trong câu hỏi) là hữu ích trong việc làm phong phú thêm các đại diện của tài liệu nội dung (ví dụ, thông tin này thường cũng được lưu trữ trong các chỉ số. Trong ví dụ thể hiện trong
term 1 occurs in {d1, d5, d6, d11,...},
term 2 occurs in {d11, d23, d59, d84,...}, and term 3 occurs in {d1, d4, d11, d19,...}.
Trong thực tế thực hiện, chúng tôi giả định rằng các tài liệu có thể được xác định bởi một số nguyên duy nhất từ 1 đến n, trong đó n là tổng số tài liệu. Nói chung, thông tin đăng được sắp xếp theo id tài liệu, mặc dù cũng có các cách sắp xếp khác. Id tài liệu không có ý nghĩa ngữ nghĩa vốn có, mặc dù việc chuyển nhượng id số đến các văn bản không cần phải được tùy ý. Ví dụ, các trang từ cùng một tên miền có thể được đánh số liên tục. Hoặc là, theo một cách khác, những trang có chất lượng cao hơn (có cơ sở, ví dụ, trên các giá trị PageRank) có thể được gán giá trị số nhỏ hơn để chúng xuất hiện trước danh sách tin đăng. Dù bằng cách nào, một cấu trúc dữ liệu phụ trợ là cần thiết để duy trì mapping từ id tài liệu số nguyên cho một số xử lý khác có ý nghĩa hơn, chẳng hạn như một URL.
Hình 2.5. Minh họa đơn giản của một chỉ mục ngược.
Mỗi term có liên quan với một danh sách các thông tin đăng. Mỗi niêm yết bao gồm một id tài liệu và một trọng số, ký hiệu là p trong trường hợp này. Một chỉ số đảo ngược cung cấp truy cập nhanh đến tài liệu id có chứa một từ.
Cho một truy vấn, thu hồi liên quan đến danh sách đăng đem lại kết hợp với truy vấn điều khoản và vượt qua các tin đăng để tính toán kết quả. Trong trường hợp đơn giản nhất, boolean retrieval liên quan đến việc thiết lập hoạt động (hợp nhất cho boolean OR và giao cắt cho boolean AND) vào danh sách tin đăng, mà có thể được thực hiện rất hiệu quả từ các bài đăng được sắp xếp theo id tài liệu. Trong trường hợp tổng quát, tuy nhiên, điểm số truy vấn tài liệu phải được tính toán. Điểm số tài liệu một phần được lưu trữ trong các cấu trúc được gọi là tích lũy. Cuối cùng (tức là, một khi tất cả tin đăng đã được xử lý), các tài liệu đầu k được giải nén (extract) sau đó để mang
chiến lược tối ưu hóa để đánh giá truy vấn (cả hai gần đúng và chính xác) để giúp giảm số lượng đăng mà một động cơ thu hồi phải kiểm tra.
Kích thước của một chỉ số đảo ngược khác nhau, tùy thuộc vào trọng số lưu trữ trong mỗi bài gửi. Nếu tần số chỉ có hạn được lưu giữ, một chỉ số đảo ngược cũng được tối ưu hóa có thể là một phần mười kích thước của bộ sưu tập tài liệu gốc. Một chỉ số đảo ngược chứa đựng thông tin về vị trí sẽ dễ dàng lớn hơn nhiều lần chỉ số không chứa. Nói chung, có thể giữ toàn bộ từ vựng (tức là, Từ điển của tất cả các term) trong bộ nhớ, đặc biệt là với các kỹ thuật như rontcoding. Tuy nhiên, ngoại trừ có nguồn lực tốt, web thương mại công cụ tìm kiếm, danh sách đăng thường quá lớn để lưu trữ trong bộ nhớ và phải được tổ chức vào đĩa, thường ở dạng nén. Đánh giá truy vấn, do đó, nhất thiết phải liên quan đến việc truy cập đĩa ngẫu nhiên và "giải mã" các thông tin đăng. Một khía cạnh quan trọng của vấn đề thu hồi là tổ chức hoạt động của đĩa như giảm thiểu tìm kiếm ngẫu nhiên.
Một lần nữa, cuộc thảo luận ngắn gọn này bao quát nhiều phức tạp và tạo nên một sự bất bình đẳng to lớn đến một lượng lớn các nghiên cứu trong tìm kiếm thông tin. Tuy nhiên, mục tiêu của chúng tôi là cung cấp cho người đọc một cái nhìn tổng quan của các vấn đề quan trọng;
Thuật toán lập chi mục ngược cơ bản (4)
1: class Mapper
2: procedure Map (docid n, doc d) 3: H ← new AssociativeArray 4: for all term t ∈ doc d do
5: H{t} ← H{t} + 1
6: for all term t ∈ H do
7: Emit (term t, posting (n, H{t})) 1: class Reducer
2: procedure Reduce (term t, postings [ (n1, f1), (n2, f2)...])
3: P ← new List
4: for all posting (a, f) ∈ postings [ (n1, f1), (n2, f2)...] do 5: Append (P, (a, f))
6: Sort (P )
7: Emit (term t, postings P )