Développement #34191
Ne pas tenir compte des accents dans la recherche sur le portail agents
0%
Description
Une demande émanant de Chambéry :
N'est-il pas possible de paramétrer le moteur de recherche pour qu'il ne prenne pas en compte les accents ?
Files
Associated revisions
History
Updated by Stéphane Laget over 5 years ago
et permettre également les recherches partielles (demandes de Vaulx-en-Velin et Chambéry)
Updated by Frédéric Péters over 5 years ago
Une recherche partielle c'est une recherche qui retourne un résultat sur deux ? (i.e. qu'est-ce qui est entendu par là, exactement ?).
Updated by Stéphane Laget over 5 years ago
- tu peux avoir des résultats qui correspondent à "déchets", "déchetterie" (tu cherches sur une partie du mot, c'est ce que je voulais dire avec "recherche partielle")
- ou "dechets" (une recherche qui ne tient pas compte des accents)
Updated by Frédéric Péters about 5 years ago
- File 0001-search-create-and-use-unaccentuated-dictionary-34191.patch 0001-search-create-and-use-unaccentuated-dictionary-34191.patch added
- Status changed from Nouveau to Solution proposée
- Patch proposed changed from No to Yes
Dans #33632#note-14 il est noté que la nouvelle recherche marche avec ou sans accents mais ce n'est pas mon expérience, de mon côté il y a de la configuration postgresql nécessaire; ce patch pour la mettre en place automatiquement.
Updated by Thomas Noël about 5 years ago
Pour l'installation de l'extension french_unaccent je regarde comment sont installées habituellement les extensions, et il y a quelques opérations peut-être utiles/nécessaires autour du CREATE EXTENSION : https://docs.djangoproject.com/en/2.2/_modules/django/contrib/postgres/operations/
Pour profiter de ça gratuitement, on pourrait décomposer la migration avec d'abord l'installation de l'extension (UnaccentExtension), puis sa configuration... Genre
… from django.contrib.postgres.operations import UnaccentExtension … operations = [ UnaccentExtension(), TextSearchConfiguration(), ]
Updated by Frédéric Péters about 5 years ago
Ça existe mais ça ne fonctionne pas pour nous, ça crée l'extension dans le schéma et ça fait du coup que dans le schéma d'après elle est déjà, ne peut pas être chargée et le
schema_editor.execute( 'ALTER TEXT SEARCH CONFIGURATION french_unaccent ' 'ALTER MAPPING FOR hword, hword_part, word ' 'WITH public.unaccent, french_stem')
devrait référencer le "premier" schéma plutôt que public.
Updated by Thomas Noël about 5 years ago
Ok pour ça. Mais donc, sans vraiment savoir l'impact, je me posais la question de cette fin de database_forwards dans les django.contrib.postgres.operations :
def database_forwards(self, ...) ... # Registering new type handlers cannot be done before the extension is # installed, otherwise a subsequent data migration would use the same # connection. register_type_handlers(schema_editor.connection)
On devrait aussi l'ajouter (regardé le code, ça lance des opérations SQL
Il y a aussi depuis Django 2.2 :
# Clear cached, stale oids. get_hstore_oids.cache_clear() get_citext_oids.cache_clear()
qu'on pourrait lancer aussi s'ils existent, genre :
try: from django.contrib.postgres.signals import get_citext_oids, get_hstore_oids except: except ImportError: # django < 2.0 get_citext_oids = get_hstore_oids = None ... # Clear cached, stale oids. if get_hstore_oids is not None: get_hstore_oids.cache_clear() if get_citext_oids is not None: get_citext_oids.cache_clear()
(Tout cela est sans doute du pinaillage, parce que je pense qu'on ne joue pas avec des oids ou des citext, mais je n'aimerai pas que lors d'un upgrade d'un jeudi soir, combo casse des choses sur un postgresql lointain)
Updated by Frédéric Péters about 5 years ago
C'est pertinent uniquement pour CITextExtension/HStoreExtension, ici on n'ajoute pas de type.
Updated by Thomas Noël about 5 years ago
- Status changed from Solution proposée to Solution validée
Ok désolé pour la perte de temps, je découvre ces trucs.
Updated by Frédéric Péters about 5 years ago
- Status changed from Solution validée to Résolu (à déployer)
Pas de soucis j'ai découvert ces opérations tout à l'heure donc c'est frais de mon côté.
commit e2348d69771cc1e046518a42418b8a60259d7b4a Author: Frédéric Péters <fpeters@entrouvert.com> Date: Wed Feb 19 10:10:52 2020 +0100 search: create and use unaccentuated dictionary (#34191)
Updated by Frédéric Péters about 5 years ago
- Status changed from Résolu (à déployer) to Solution déployée
search: create and use unaccentuated dictionary (#34191)