Exemple #1
0
    def test_find_reviews(self):
        """Test that full-text search works on reviews.

           In addition to finding terms in a review's
           summary or body, we want to test that
           postgres is stemming and lowercasing the queries.
        """

        # Check that postgres is stemming
        results1 = Review.find_reviews('A1', 'wasted')

        self.assertEqual(len(results1), 1)
        self.assertIn("waste of money", results1[0][1])

        # Check that postgres is dealing with case
        results2 = Review.find_reviews('A2', 'trash')

        self.assertEqual(len(results2), 1)
        self.assertIn("monitor broke", results2[0][1])
def search_reviews(asin):
    

    search_query = request.args.get('query')

    
    reviews = Review.find_reviews(asin, search_query)

    user_id = None

    if "user" in session:
        user_id = session["user"]["id"]

    
    review_dict_list = format_reviews_to_dicts(reviews, user_id)

    return jsonify(review_dict_list[:10])
Exemple #3
0
def search_reviews(asin):
    """Perform full-text search within product reviews.
       Returns the matching reviews via json to the front end.
    """

    search_query = request.args.get('query')

    # Run full-text search within a product's reviews
    # Return a list of review tuples.
    reviews = Review.find_reviews(asin, search_query)

    user_id = None

    if "user" in session:
        user_id = session["user"]["id"]

    # Converts list of review tuples into a list of dictionaries
    review_dict_list = format_reviews_to_dicts(reviews, user_id)

    return jsonify(review_dict_list[:10])