adde find_related_products_v4 to tes trigram indexing

This commit is contained in:
Sam
2021-02-18 13:53:58 +00:00
parent fee9bdbd3f
commit 974f6f248d

View File

@@ -1,7 +1,7 @@
import logging import logging
from django.db.models import Q from django.db.models import Q
from django.contrib.postgres.search import SearchQuery, SearchRank, SearchVector from django.contrib.postgres.search import SearchQuery, SearchRank, SearchVector, TrigramSimilarity
from products.models import Product from products.models import Product
@@ -114,3 +114,14 @@ def find_related_products_v3(keyword):
).order_by('-rank') ).order_by('-rank')
return products_qs return products_qs
def find_related_products_v4(keyword):
"""
Using trigrams
"""
fields=('name', 'description', 'tags__label', 'attributes__label', 'category__name')
products_qs = Product.objects.annotate(
similarity=TrigramSimilarity(fields, keyword)
).order_by('-similarity')
return products_qs