added multi-language support to FTS

This commit is contained in:
smilerz
2021-04-11 20:17:54 -05:00
parent f9f8dbd64a
commit 13b5827cb2
2 changed files with 24 additions and 7 deletions

View File

@ -1,8 +1,10 @@
from django.contrib.postgres.search import SearchVector
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.utils import translation
from cookbook.models import Recipe
from cookbook.managers import DICTIONARY
@receiver(post_save, sender=Recipe)
@ -14,9 +16,10 @@ def update_recipe_search_vector(sender, instance=None, created=False, **kwargs):
if hasattr(instance, '_dirty'):
return
language = DICTIONARY.get(translation.get_language(), 'simple')
instance.search_vector = (
SearchVector('name', weight='A', config='english')
+ SearchVector('description', weight='C', config='english')
SearchVector('name', weight='A', config=language)
+ SearchVector('description', weight='C', config=language)
)
try: