def quick_search(cls):
        """
        This version of quick_search uses elasticsearch to build
        search results for searches from the website.
        """
        Product = Pool().get('product.product')

        page = request.args.get('page', 1, type=int)
        phrase = request.args.get('q', '')

        logger = Pool().get('elasticsearch.configuration').get_logger()

        search_obj = Product._quick_search_es(phrase)

        products = ElasticPagination(
            Product.__name__, search_obj, page, Product.per_page
        )

        if products:
            logger.info(
                "Search for %s yielded in %d results." %
                (phrase, products.count)
            )
        else:
            logger.info(
                "Search for %s yielded no results from elasticsearch." % phrase
            )

        return render_template(
            'search-results.jinja',
            products=products,
            facets=products.result_set.facets
        )
Esempio n. 2
0
    def quick_search(cls):
        """
        This version of quick_search uses elasticsearch to build
        search results for searches from the website.
        """
        Product = Pool().get('product.product')
        config = Pool().get('elasticsearch.configuration')(1)

        if not config.get_es_connection(timeout=5):
            # NO ES fallback to default search
            return super(Website, cls).quick_search()

        page = request.args.get('page', 1, type=int)
        phrase = request.args.get('q', '')

        search_obj = Product._quick_search_es(phrase)

        products = ElasticPagination(Product.__name__, search_obj, page,
                                     Product.per_page)

        if products:
            logger.info("Search for %s yielded in %d results." %
                        (phrase, products.count))
        else:
            logger.info(
                "Search for %s yielded no results from elasticsearch." %
                phrase)

        return render_template('search-results.jinja',
                               products=products,
                               facets=products.result_set.facets)