def search_related_topics(self, topic, count): """Sends a request to solr for topics related to the given topic Returns up to count number of related topics Returns a list of topics """ solr_q = solr_interface.query() query_terms = normalize_words(topic.title.split()) q_OR = solr_interface.Q(title="") for term in query_terms: q_OR |= solr_interface.Q(title=term) solr_q = solr_q.query(q_OR).exclude(id=topic.gfaqs_id) resp = solr_q.paginate(start=0, rows=count).execute() return [result_to_gfaqs_id(t) for t in resp]
def search_topic(self, query, board_alias, start, count): """Sends a request to solr for topics matching query Returns a 2-tuple: (total_results, result_list) """ solr_q = solr_interface.query() for term in normalize_words(query.split()): solr_q = solr_q.query(title=term) resp = solr_q \ .filter(board_alias=board_alias) \ .sort_by("-last_post_date") \ .paginate(start=start, rows=count) \ .execute() return (resp.result.numFound, [result_to_gfaqs_id(t) for t in resp])