Logic and Computational Complexity for Boolean Information Retrieval