diff --git a/cookbook/admin.py b/cookbook/admin.py index 14dc0fca4..425eba149 100644 --- a/cookbook/admin.py +++ b/cookbook/admin.py @@ -98,8 +98,8 @@ admin.site.register(Step, StepAdmin) def rebuild_index(modeladmin, request, queryset): with scopes_disabled(): search_vector = ( - SearchVector('name', weight='A') - + SearchVector('description', weight='B')) + SearchVector('name__unaccent', weight='A') + + SearchVector('description__unaccent', weight='B')) queryset.update(search_vector=search_vector) diff --git a/cookbook/management/commands/rebuildindex.py b/cookbook/management/commands/rebuildindex.py index e5f46c429..e3f336653 100644 --- a/cookbook/management/commands/rebuildindex.py +++ b/cookbook/management/commands/rebuildindex.py @@ -18,8 +18,8 @@ class Command(BaseCommand): try: with scopes_disabled(): search_vector = ( - SearchVector('name', weight='A') - + SearchVector('description', weight='B')) + SearchVector('name__unaccent', weight='A') + + SearchVector('description__unaccent', weight='B')) Recipe.objects.all().update(search_vector=search_vector) self.stdout.write(self.style.SUCCESS(_('Recipe index rebuild complete.'))) diff --git a/cookbook/managers.py b/cookbook/managers.py index dc08d2bee..c5ba3cb33 100644 --- a/cookbook/managers.py +++ b/cookbook/managers.py @@ -34,8 +34,8 @@ class RecipeSearchManager(models.Manager): ) 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)) search_rank = SearchRank(search_vectors, search_query) # USING TRIGRAM BREAKS WEB SEARCH # ADDING MULTIPLE TRIGRAMS CREATES DUPLICATE RESULTS diff --git a/cookbook/migrations/0120_build_full_text_index.py b/cookbook/migrations/0120_build_full_text_index.py index 23c2c61ff..c1a4301a9 100644 --- a/cookbook/migrations/0120_build_full_text_index.py +++ b/cookbook/migrations/0120_build_full_text_index.py @@ -12,8 +12,8 @@ def set_default_search_vector(apps, schema_editor): return with scopes_disabled(): search_vector = ( - SearchVector('name', weight='A') - + SearchVector('description', weight='B')) + SearchVector('name__unaccent', weight='A') + + SearchVector('description__unaccent', weight='B')) Recipe.objects.all().update(search_vector=search_vector) diff --git a/cookbook/signals.py b/cookbook/signals.py index fab9a1238..45f1863ca 100644 --- a/cookbook/signals.py +++ b/cookbook/signals.py @@ -18,8 +18,8 @@ def update_recipe_search_vector(sender, instance=None, created=False, **kwargs): language = DICTIONARY.get(translation.get_language(), 'simple') instance.search_vector = ( - SearchVector('name', weight='A', config=language) - + SearchVector('description', weight='C', config=language) + SearchVector('name__unaccent', weight='A', config=language) + + SearchVector('description__unaccent', weight='C', config=language) ) try: