Inverted index map term sang danh sách document chứa term đó.
Tìm một từ chỉ là một lần lookup rồi lấy posting list, thay vì scan toàn bộ document như LIKE %keyword% trong SQL.
text
"laptop" -> [doc1, doc7, doc9]
"gaming" -> [doc7, doc12]Đây là lý do full-text search nhanh hơn hẳn LIKE %...%, nơi B-tree index không giúp được vì từ nằm giữa chuỗi.
Dữ liệu đi vào index phải qua analysis: tokenize, lowercase, bỏ dấu hoặc stemming tuỳ config. Vì thế thứ nằm trong index thường khác chuỗi gốc, và điều này giải thích rất nhiều hành vi search gây bất ngờ.
bash
GET /_analyze
{ "analyzer": "standard", "text": "Laptop Gaming" }
# -> ["laptop", "gaming"]Hệ quả quan trọng: cùng một analyzer phải áp cho cả index time lẫn query time, không thì từ user gõ sẽ không khớp thứ đã lưu.