def get(self): # pagination results try: page_number = int(self.get_argument('page', 1)) except ValueError: page_number = 1 idx = self.meta.search_index posts = yield generic(idx, q=Every(), page=page_number) topics_keywords = yield get_all_topics_and_kw(idx) return self.render_html('pages/index.html', posts=posts, **topics_keywords)
def get(self, subject, value, is_atom=None): # pagination results try: page_number = int(self.get_argument('page', 1)) except ValueError: page_number = 1 if is_atom is None: print('hi') # get the index from the application meta data idx = self.meta.search_index # clean up the subject and search value from the url bar subject, value = subject.split()[0], value.strip(' /') # search all if subject == '_': # star-search for generic query q = value = urllib.parse.unquote_plus(value) # force the query builder to define # a new multi-field query set, when parser is explicitly set to `None` parser = None else: # build the query string we'll pass to the QueryParser q = '%s:%s' % (subject, value) # build the QueryParser instance from the index schema parser = QueryParser(subject, schema=idx.schema) # get our results, in a clean format for display results = yield generic(idx, qs=q, parser=parser, page=page_number) keywords = self.get_keywords(results) topics = self.get_topics(results) if is_atom: # render the results as an atom feed self.write(self.generate_feed(results, subtitle=q, url=self.this_url)) else: # render the results to the page! self.render_html('pages/search_results.html', keywords=keywords, topics=topics, results=results, term=value)
def get(self): posts = yield generic(self.meta.search_index, q=Every(), limit=20) self.write(self.generate_feed(posts))