def search_and_rank_query(query, inverted_index, k, stemming, output_path): p = Parse(stemming) query_as_list = [term.text.lower() for term in p.parse_sentence(query)] searcher = Searcher(inverted_index, os.path.join(output_path, PostingFile)) w_of_term_in_query = searcher.CalculateW(query_as_list) relevant_docs = searcher.relevant_docs_from_posting(list(w_of_term_in_query.keys())) ranked_docs = searcher.ranker.rank_relevant_doc(relevant_docs, w_of_term_in_query) output = searcher.ranker.retrieve_top_k(ranked_docs, k) return output