Query Logs and evaluation of search engines I'm taking a course about Information Retrieval and we had a quiz involving the evaluation of search engines.

We had a problematic question regarding "Query Logs" (basically recording the queries that users searched in the past and their response for the queries e.g links clicked), and I hope you can help me figure out the answer:

Using query logs can improve the retrieval efficiency of the search engine by:


A. Learning common typos in queries
B. Learning the connection between pages the users clicked as the result of different queries 
C. Saving popular queries in a cache
D. A + B + C
E. A + B + C doesn't affect the efficiency of retrieval 
F. The Collection of query logs can't affect the efficiency of retrieval 


I circled option D (A+B+C) and I was wrong.

My Lecturer refuses to reveal the correct answer - I can appeal about her decision but I want to be certain I'm correct.

The explanation for my answer: the question talked about improving the retrieval efficiency, and to the best of my knowledge retrieval efficiency is the time measured from when the user clicked "Search" until the user received the results back. 

Therefore, I think A is correct because if we learn common typing mistakes in queries we can create a dictionary of those common errors and create spell correction algorithms. For example if many users typed "bast" instead of "best", we can use a data structure similar to a cache. (However, this might require an enormous amount of memory, but the question didn't mention memory efficiency)

I think C is correct because we can save the results of the popular queries in a cache instead of using the (fairly slow) posting file.

B is the only option that I'm not sure why is correct, but I assumed that if A and C are correct, B can be correct. 

Could you please tell me what you think about the question and my answers?

Thank you!
I would have selected option C.

I don't think option A is correct.  We probably can learn common typos, but that doesn't affect the time to process a search query, and it's not clear how you'd use that to speed up search queries.  (I'm assuming that "time to process a search query" is what is meant by "retrieval efficiency".)

Similarly, I don't think option B is correct.  We probably can learn the connection between different pages that a user clicked, but that doesn't appear to affect the time to process a search query, as far as I can tell.