testing product search utils directly, now they return sets

This commit is contained in:
Sam
2021-02-19 11:00:26 +00:00
parent d4738a83cc
commit 8abcda74f8
3 changed files with 47 additions and 13 deletions

View File

@@ -92,7 +92,7 @@ def find_related_products_v5(keyword):
Q(category__name__icontains=keyword)|
Q(attributes__label__icontains=keyword)
)
return products_qs
return set(products_qs)
def find_related_products_v2(keyword):
@@ -104,7 +104,7 @@ def find_related_products_v2(keyword):
products_qs = Product.objects.annotate(
search=vector
).filter(search=keyword)
return products_qs
return set(products_qs)
def find_related_products_v3(keyword):
@@ -118,13 +118,16 @@ def find_related_products_v3(keyword):
PROBLEM: returns unrelated instances
"""
# TODO: figure out why it includes unrelated instances
fields=('name', 'description', 'tags__label', 'attributes__label', 'category__name')
vector = SearchVector(*fields)
# fields=('name', 'description', 'tags__label', 'attributes__label', 'category__name')
vector = SearchVector('name') + SearchVector('description') + SearchVector('tags__label') + SearchVector('attributes__label') + SearchVector('category__name')
query = SearchQuery(keyword)
products_qs = Product.objects.annotate(
rank=SearchRank(vector, query)
).order_by('-rank')
return products_qs
).filter(rank__gt=0.05).order_by('-rank')
return set(products_qs)
def find_related_products_v4(keyword):
@@ -137,4 +140,4 @@ def find_related_products_v4(keyword):
similarity=TrigramSimilarity('name', keyword),
).order_by('-similarity')
return products_qs
return set(products_qs)