Development #15736
API de recherche texte libre sur les utilisateurs
0%
Description
Extrait de #15620:
Côté welco, avoir un ?q= (ou autre, qui fasse comme le ?search-text= dans le manager), ça serait également bien utile.
Donc avoir une recherche libre qui tape à la fois dans first_name, last_name, username et email.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
- Lié à Development #15620: api: permettre plus de possibilité de filtrage dans l'API des utilisateurs ajouté
Mis à jour par Thomas Noël il y a environ 7 ans
Benjamin Dauvergne a écrit :
Extrait de #15620:
Côté welco, avoir un ?q= (ou autre, qui fasse comme le ?search-text= dans le manager), ça serait également bien utile.
Donc avoir une recherche libre qui tape à la fois dans first_name, last_name, username et email.
... et tous les autres attributs (dans le cadre d'une utilisation par welco, les numéros de téléphones sont nécessaires)
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
En fait ça va utiliser ce qui est proposé dans le #15739.
Mis à jour par Frédéric Péters il y a presque 6 ans
- Lié à Development #19756: Personnalisation accrue du portail agent pour en faire aussi la page d'entrée des agents d'accueil ajouté
Mis à jour par Frédéric Péters il y a presque 6 ans
- Sujet changé de Recherche quasi-full text sur les utilisateurs à API de recherche texte libre sur les utilisateurs
Le besoin est en fait encore présent, pourrait bénéficier de l'expérience acquise dans Zoo. (je change d'ailleurs l'intitulé pour parler de recherche texte libre, que ça puisse aller au-delà d'une recherche dans une indexation full text)
Mis à jour par Benjamin Dauvergne il y a presque 6 ans
- supprimer authentic2.manager.utils.filter_user() en faire une méthode nommée
free_text_search()
d'une classe UserQueryset, mixer cette classe dans authentic2.custom_user.manager.UserManager (en utilisant Manager.from_queryset() et en héritant du résultat) - remplacer tous les usages de filter_user par cette nouvelle méthode sur les Queryset de User(s)
- dans authentic2.api_views (après avoir lu un peu http://www.django-rest-framework.org/api-guide/filtering/)
- créer une classe FreeTextSearchFilter sur le modèle de http://www.django-rest-framework.org/api-guide/filtering/#example , extraire
q
de la query string, appliquerfree_text_search()
- définir UsersAPI.filter_backends à
settings.REST_FRAMEWORK['DEFAULT_FILTER_BACKENDS'] + ('authentic2.api_views.FreeTextSearchFilter',)
- créer une classe FreeTextSearchFilter sur le modèle de http://www.django-rest-framework.org/api-guide/filtering/#example , extraire
Mis à jour par Benjamin Dauvergne il y a presque 6 ans
Quand à tirer de l'expérience de zoo, sûr mais zoo dépend du support de fonctionnalité avancé de Postgresql dans Django 1.11 notamment les index trigramme; il faudra attendre la monter en version pour pouvoir aller vers cela (on peut toujours écrire tout ça à la main mais bon).
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Lié à Development #20694: Ajouter une priorité sur les attributs du profil pour la recherche des utilisateurs ajouté
Mis à jour par Emmanuel Cazenave il y a plus de 5 ans
- Lié à Development #28223: Recherche texte utilisateur : nettoyage ajouté
Mis à jour par Emmanuel Cazenave il y a plus de 5 ans
- Fichier 0001-api-free-text-search-on-users-15736.patch 0001-api-free-text-search-on-users-15736.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
A appliquer après #28223.
Permet un ?q=textelibre
, dans le enpoint de recherche d'utilisateurs.
J'ai suivi le plan décrit dans #15736#note-6, qui ne donne donc pas la recherche par trigramme réalisée dans Zoo, qui pourra venir plus tard.
Mis à jour par Benjamin Dauvergne il y a plus de 5 ans
- Statut changé de Solution proposée à Solution validée
C'est gentil1 aux gens de rest_framework de vouloir corriger de vieilles erreurs, mais je trouve request.GET['q']
moins curieux que request.query_params['q']
quand on fait du Django depuis plus de 10 jours.
Pour le reste c'est tout bon.
1 https://www.django-rest-framework.org/api-guide/requests/#query_params
Mis à jour par Emmanuel Cazenave il y a plus de 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
Poussé en tenant compte de ton commentaire.
commit 0876d25dbdbd90d9710eb1d1479e598cd5d47f3b Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Wed Nov 21 14:50:00 2018 +0100 api: free text search on users (#15736)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
api: free text search on users (#15736)