Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
 def get(self):
     posts = yield generic(self.meta.search_index, q=Every(), limit=20)
     self.write(self.generate_feed(posts))