This commit is contained in:
smilerz
2021-04-25 19:09:54 -05:00
parent e039590483
commit c716a56b18
2 changed files with 47 additions and 4 deletions

View File

@@ -48,10 +48,11 @@ def search_recipes(queryset, params):
search_type="websearch",
config=language,
)
# TODO make icontains a configurable option - it could eventually have performance impacts
search_vectors = (
SearchVector('search_vector')
+ SearchVector(StringAgg('steps__ingredients__food__name', delimiter=' '), weight='B', config=language)
+ SearchVector(StringAgg('keywords__name', delimiter=' '), weight='B', config=language))
+ SearchVector(StringAgg('steps__ingredients__food__name__unaccent', delimiter=' '), weight='B', config=language)
+ SearchVector(StringAgg('keywords__name__unaccent', delimiter=' '), weight='B', config=language))
trigram = (
TrigramSimilarity('name', search_string)
+ TrigramSimilarity('description', search_string)
@@ -59,11 +60,11 @@ def search_recipes(queryset, params):
search_rank = SearchRank(search_vectors, search_query)
queryset = (
queryset.annotate(
search=search_vectors,
vector=search_vectors,
rank=search_rank + trigram,
)
.filter(
search_vector=search_query
vector=search_query
)
.order_by('-rank'))
else: