add unaccent to full text search vectors
This commit is contained in:
@ -89,8 +89,8 @@ admin.site.register(Step, StepAdmin)
|
|||||||
def rebuild_index(modeladmin, request, queryset):
|
def rebuild_index(modeladmin, request, queryset):
|
||||||
with scopes_disabled():
|
with scopes_disabled():
|
||||||
search_vector = (
|
search_vector = (
|
||||||
SearchVector('name', weight='A')
|
SearchVector('name__unaccent', weight='A')
|
||||||
+ SearchVector('description', weight='B'))
|
+ SearchVector('description__unaccent', weight='B'))
|
||||||
queryset.update(search_vector=search_vector)
|
queryset.update(search_vector=search_vector)
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,8 +18,8 @@ class Command(BaseCommand):
|
|||||||
try:
|
try:
|
||||||
with scopes_disabled():
|
with scopes_disabled():
|
||||||
search_vector = (
|
search_vector = (
|
||||||
SearchVector('name', weight='A')
|
SearchVector('name__unaccent', weight='A')
|
||||||
+ SearchVector('description', weight='B'))
|
+ SearchVector('description__unaccent', weight='B'))
|
||||||
Recipe.objects.all().update(search_vector=search_vector)
|
Recipe.objects.all().update(search_vector=search_vector)
|
||||||
|
|
||||||
self.stdout.write(self.style.SUCCESS(_('Recipe index rebuild complete.')))
|
self.stdout.write(self.style.SUCCESS(_('Recipe index rebuild complete.')))
|
||||||
|
@ -34,8 +34,8 @@ class RecipeSearchManager(models.Manager):
|
|||||||
)
|
)
|
||||||
search_vectors = (
|
search_vectors = (
|
||||||
SearchVector('search_vector')
|
SearchVector('search_vector')
|
||||||
+ SearchVector(StringAgg('steps__ingredients__food__name', delimiter=' '), weight='B', config=language)
|
+ SearchVector(StringAgg('steps__ingredients__food__name__unaccent', delimiter=' '), weight='B', config=language)
|
||||||
+ SearchVector(StringAgg('keywords__name', delimiter=' '), weight='B', config=language))
|
+ SearchVector(StringAgg('keywords__name__unaccent', delimiter=' '), weight='B', config=language))
|
||||||
search_rank = SearchRank(search_vectors, search_query)
|
search_rank = SearchRank(search_vectors, search_query)
|
||||||
# USING TRIGRAM BREAKS WEB SEARCH
|
# USING TRIGRAM BREAKS WEB SEARCH
|
||||||
# ADDING MULTIPLE TRIGRAMS CREATES DUPLICATE RESULTS
|
# ADDING MULTIPLE TRIGRAMS CREATES DUPLICATE RESULTS
|
||||||
|
@ -12,8 +12,8 @@ def set_default_search_vector(apps, schema_editor):
|
|||||||
return
|
return
|
||||||
with scopes_disabled():
|
with scopes_disabled():
|
||||||
search_vector = (
|
search_vector = (
|
||||||
SearchVector('name', weight='A')
|
SearchVector('name__unaccent', weight='A')
|
||||||
+ SearchVector('description', weight='B'))
|
+ SearchVector('description__unaccent', weight='B'))
|
||||||
Recipe.objects.all().update(search_vector=search_vector)
|
Recipe.objects.all().update(search_vector=search_vector)
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,8 +18,8 @@ def update_recipe_search_vector(sender, instance=None, created=False, **kwargs):
|
|||||||
|
|
||||||
language = DICTIONARY.get(translation.get_language(), 'simple')
|
language = DICTIONARY.get(translation.get_language(), 'simple')
|
||||||
instance.search_vector = (
|
instance.search_vector = (
|
||||||
SearchVector('name', weight='A', config=language)
|
SearchVector('name__unaccent', weight='A', config=language)
|
||||||
+ SearchVector('description', weight='C', config=language)
|
+ SearchVector('description__unaccent', weight='C', config=language)
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
Reference in New Issue
Block a user