Projet

Général

Profil

Development #87906

Rendre la recherche sur les rôles insensible aux accents (unaccent)

Ajouté par Thomas Noël il y a environ 2 mois. Mis à jour il y a 12 jours.

Statut:
Solution déployée
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
07 mars 2024
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Actuellement on fait un icontains simple :

# extrait de manager/role_views.py :

class UserOrRoleSelect2View(DetailView):

...
    @staticmethod
    def filter_queryset(qs, search_term, search_fields):
        lookups = Q()
        for term in [term for term in search_term.split() if not term == '']:
            lookups &= reduce(Q.__or__, (Q(**{'%s__icontains' % field: term}) for field in search_fields))
        return qs.filter(lookups)

Il semble qu'avec ce qui est installé sur Authentic on pourrait ajouter sans frais un __unaccent__ : https://docs.djangoproject.com/en/3.2/ref/contrib/postgres/lookups/#unaccent

Mais il y a ce warning dans la doc : « unaccent lookups should perform fine in most use cases. However, queries using this filter will generally perform full table scans, which can be slow on large tables. In those cases, using dedicated full text indexing tools might be appropriate. ». Et là je ne sais pas très bien ce qu'ils appellent des « large tables », si c'est un grand nombre de colonnes ou la présence de beaucoup de lignes (dans ce cas ça n'ira pas, on veut quelque chose qui répond (très) vite).


Demandes liées

Lié à Authentic 2 - Support #89168: Recherche sans accent ne fonctionne pasFermé05 avril 2024

Actions

Révisions associées

Révision 67674f56 (diff)
Ajouté par Thomas Noël il y a 29 jours

manager: search role with unaccent lookup (#87906)

Révision 16b714c0 (diff)
Ajouté par Thomas Noël il y a 28 jours

Revert manager: search role with unaccent lookup (#87906)

This reverts commit 67674f56f920c5f2195c68c356bc64c944add38b.

Révision 2b3d04a6 (diff)
Ajouté par Benjamin Dauvergne il y a 12 jours

manager: search role with unaccent lookup (#87906)

Historique

#2

Mis à jour par Robot Gitea il y a environ 2 mois

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Thomas Noël

Thomas NOËL (tnoel) a ouvert une pull request sur Gitea concernant cette demande :

#3

Mis à jour par Robot Gitea il y a environ 2 mois

  • Statut changé de En cours à Solution proposée
#4

Mis à jour par Thomas Noël il y a environ 2 mois

Vu avec des collègues : il faut "ajouter un index au niveau unaccent" et c'est déjà quelque chose qui existe, cf https://git.entrouvert.org/entrouvert/authentic/src/branch/main/src/authentic2/migrations/0028_trigram_unaccent_index.py

#5

Mis à jour par Robot Gitea il y a environ 2 mois

  • Statut changé de Solution proposée à En cours

Thomas NOËL (tnoel) a commencé à travailler sur une pull request sur Gitea concernant cette demande :

#6

Mis à jour par Robot Gitea il y a 29 jours

  • Statut changé de En cours à Solution proposée
#7

Mis à jour par Robot Gitea il y a 29 jours

  • Statut changé de Solution proposée à Solution validée

Benjamin Dauvergne (bdauvergne) a approuvé une pull request sur Gitea concernant cette demande :

#8

Mis à jour par Robot Gitea il y a 28 jours

  • Statut changé de Solution validée à Résolu (à déployer)

Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :

#10

Mis à jour par Thomas Noël il y a 28 jours

  • Statut changé de Résolu (à déployer) à En cours

On a un crash certainement lié au mode multitenant/schema : django.db.utils.ProgrammingError: function immutable_unaccent(text) does not exist

Je revert de façon "brute", car la migration n'a réussie nulle part et peut donc certainement être oubliée.

#11

Mis à jour par Thomas Noël il y a 28 jours

commit 16b714c01ffc52eaab9dc249f487e973154d6e44
Author: Thomas NOËL <tnoel@entrouvert.com>
Date:   Sat Mar 30 14:50:47 2024 +0100

    Revert manager: search role with unaccent lookup (#87906)

    This reverts commit 67674f56f920c5f2195c68c356bc64c944add38b.

#12

Mis à jour par Robot Gitea il y a 24 jours

  • Assigné à changé de Thomas Noël à Benjamin Dauvergne

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#13

Mis à jour par Robot Gitea il y a 24 jours

  • Statut changé de En cours à Solution proposée
#14

Mis à jour par Benjamin Dauvergne il y a 24 jours

J'ai repris le patch et ajouté les préfixes de schéma manquants, j'ai testé localement dans mon déploiement publik-devinst, la migration passe maintenant.

#15

Mis à jour par Mikaël Ates (de retour le 29 avril) il y a 22 jours

  • Lié à Support #89168: Recherche sans accent ne fonctionne pas ajouté
#16

Mis à jour par Robot Gitea il y a 19 jours

Benjamin Dauvergne (bdauvergne) a demandé une relecture de Thomas NOËL (tnoel) sur une pull request sur Gitea concernant cette demande :

#17

Mis à jour par Robot Gitea il y a 19 jours

  • Statut changé de Solution proposée à Solution validée

Thomas NOËL (tnoel) a approuvé une pull request sur Gitea concernant cette demande :

#18

Mis à jour par Robot Gitea il y a 12 jours

  • Statut changé de Solution validée à Résolu (à déployer)

Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :

#19

Mis à jour par Transition automatique il y a 12 jours

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF