Development #89983
Performances: search_site filtre avec SearchRank qui n'est pas prévu pour ça
Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
24 avril 2024
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
Le code de la fonction search_site (apps/search/utils.py) filtre actuellement les données comme suit:
query = SearchQuery(query, config=config) qs = ( IndexedCell.objects.annotate(rank=SearchRank(vector, query)) .filter(rank__gte=0.2) .order_by('-rank') )
Or, le filtrage ne doit pas se faire par le rang, ce dernier ne sert que pour trier normalement. Le filtrage se ferait avec un .filter(vector=query), qui lui est indexable et donc beaucoup plus rapide.
(Note que pour l'instant il n'y a pas d'index pour cette recherche, sur les plus gros sites il est nécessaire de l'ajouter)