Projet

Général

Profil

Development #34808

base adresse: être compatible avec l'autocomplétion wcs en supportant q= et id=

Ajouté par Thomas Noël il y a presque 5 ans. Mis à jour il y a environ 4 ans.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
13 juillet 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

En fait ce n'est pas possible nativement, car les id renvoyés par la BAN ne sont pas retrouvables ensuite.

Mais on pourrait faire cette ruse :
  • La recherche avec q= donne un ensemble de résultat avec des id, et pour chaque lat et lon. On remplace l'id de chaque élément par id-lat-lon
  • Lorsqu'on reçoit ensuite id=id-lat-lon, on fait d'abord une recherche inverse sur lat et lon, qui va renvoyer un résultat qui, sauf bogue de la BAN, doit renvoyer l'élement (l'adresse) avec le même id, et voilà

Fichiers

Historique

#1

Mis à jour par Thomas Noël il y a presque 5 ans

J'ai joué avec l'idée et ça semble marcher très bien... mais bon, c'est assez empirique et ça me plait moyennement.

(Le code est plutôt sale, copié collé de search et reverse ; pour un vrai patch faudrait factoriser les choses et aussi mettre ce connecteur au gout du jour)

#2

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Et simplement mettre en cache les id pendant un certain temps (en plus de ta technique) ?

Une fois que la donnée est stockée on ne demandera plus jamais l'adresse via l'id, normalement.

#3

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Aussi je vois que tu fais un reverse sur lat/long mais tu ne vérifies pas si l'id retourné est le même.

#4

Mis à jour par Thomas Noël il y a presque 5 ans

Benjamin Dauvergne a écrit :

Et simplement mettre en cache les id pendant un certain temps (en plus de ta technique) ?
Une fois que la donnée est stockée on ne demandera plus jamais l'adresse via l'id, normalement.

J'y ai pensé mais le cache de Django n'est pas partagé entre les différentes machines, faudrait cacher dans la base, j'avais plutôt envie de voir comment "faire sans".

Aussi je vois que tu fais un reverse sur lat/long mais tu ne vérifies pas si l'id retourné est le même.

Oui c'est juste un draft que je posais ici pour montrer que le principe me semble ok ; j'ai juste vérifié "à la main" ensuite plein d'adresses un peu au pif et ça marchait bien.

Ah, aussi, comme j'ai choisi le "-" en séparateur, on ne peut pas habiter à l'ouest du méridien de greenwich, comme quoi c'est vraiment un draft.

Je verrais à peaufiner l'affaire si on pense que le principe est ok (et si c'est utile).

#5

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Thomas Noël a écrit :

J'y ai pensé mais le cache de Django n'est pas partagé entre les différentes machines, faudrait cacher dans la base, j'avais plutôt envie de voir comment "faire sans".

En fait mettre en cache en base à la volée ne me parait pas déconnant dans un premier temps alors.

#6

Mis à jour par Valentin Deniaud il y a environ 4 ans

  • Statut changé de Nouveau à Rejeté

L'aventure continue dans #39387.

Formats disponibles : Atom PDF