Projet

Général

Profil

Development #89983

Performances: search_site filtre avec SearchRank qui n'est pas prévu pour ça

Ajouté par Pierre Ducroquet il y a 12 jours. Mis à jour il y a 12 jours.

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)

Formats disponibles : Atom PDF