-
-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
correction de la recherche sur adresse avec des codes voies n'ayant pas l'identifiant majic (ccovoi) #451
Conversation
…as l'identifiant majic (ccovoi) (3liz#345) ces codes voies proviennent de l'import depuis TOPO les valeurs sont quand même uniques en concaténant le code insee+ccoriv.
je bosse sur l'index... |
@landryb j'ai rajouté un commit pour l'index. Pourrais tu tester stp ? Notamment sur des gros jeux de données (avec et sans) si tu as le temps ? |
sans index, cette requete (prise depuis #345 (comment)) me renvoie 5 records après 2mn40:
si j'essaie de créer l'index avec ta requete sql (sur la table
il faut a priori une paire de parentheses en plus, cf https://www.postgresql.org/message-id/37d451f704102020346fdbb855%40mail.gmail.com ?
et la meme requete sql qu'au début me renvoie les 5 meme records en |
Merci @landryb en effet, c'est |
@landryb J'ai repoussé et changé l'endroit où je crée l'index:
Seul souci auquel je n'avais pas pensé, dans le cas d'imports successifs, on va supprimer et recréer les indexes ajoutés avec cette méthode |
ok, dans mon cas il sera crée 12 fois, mais bon ... je vois que c'est effectivement plus logique de le mettre au meme endroit que la création des autres indexes. @MaelREBOUX doit tester ce que ca donne chez lui avec/sans l'index .. une fois validé il me semble qu'on sera bons pour merger (et releaser ;) |
bon, je viens de tester sur une bdd sqlite via sqlite3 /tmp/test.sqlite
sqlite> CREATE TABLE test (id integer, nom text);
sqlite> PRAGMA table_info('test');
0|id|INTEGER|0||0
1|nom|TEXT|0||0
sqlite> CREATE INDEX idx ON test (nom);
# no souci
sqlite> CREATE INDEX idx_substr ON test ((substr(nom, 2, 14)||substr(nom, 3, 5)));
# no souci non plus
La création d'index avec le |
j'aimerais être 100% d'accord avec ca, mais j'ai un peu peur que la réalité soit autre.. je pense que pour beaucoup d'utilisateurs du plugin, 'postgis' veut dire holala c'est compliqué il faut un serveur et une base de données et par conséquent importent un département entier (voire plus..) dans du spatialite (je suis quasi certain d'avoir eu X demandes d'aide a ce sujet dans mes mails...). le résultat est probablement abominablement lent a l'utilisation, mais c'est self-contained et ne demande pas d'interagir avec un informagicien.... mais oui, sur le fond, on est d'accord que postgis c'est mieux dès qu'on dépasse qqs communes/un epci. |
D'accord avec toi @landryb : il y a l'idéal, et ce que les utilisateurs font vraiment en fonction de leurs compétences, du temps qu'ils ont, du contexte. Je vais pousser les tests Spatialite, et voir si cela fonctionnerait :D Au sujet des indexes, je me souviens d'avoir choisi de les supprimer avant import puis les recréer après import pour améliorer les performances des commandes COPY/INSERT/UPDATE lancées par l'import. Mais je n'ai pas auditer dans le cas de 12 départements.. Et c'est à vérifier (qui de la table parcelle_info) Peut-être pourrais tu adapter cette partie là pour ton fork, et ne lancer la création de tous les indexes à la main qu'à la fin ? Pour lister tous les indexes, il y a ceci qui peut aider : SELECT *
FROM pg_indexes
WHERE schemaname = 'NOM_DU_SCHEMA'
ORDER BY schemaname, tablename, indexname
; |
nb: on a peut-etre besoin de 2 indexes de plus pour les MV qu'on genere dans cadastrapp, sur les tables |
Je viens de constater un truc, on fait une jointure entre parcelle, geo_parcelle et voie pour la table parcelle_info :
Il va falloir regarder si la jointure entre la table parcelle et voie, toutes les 2 issues du MAJIC est bien opérante, cad si les objets de parcelle_info ont bien des adresses référencées dans les champs CF champs utilisés avec un fallback sur les champs des autres tables, cf CASE
WHEN v.libvoi IS NOT NULL THEN trim(ltrim(p.dnvoiri, '0') || ' ' || trim(v.natvoi) || ' ' || v.libvoi)
ELSE ltrim(p.cconvo, '0') || p.dvoilib
END AS adresse, |
Je relance un import pour tester |
hum, d'ailleurs ce n'est pas comme en python, le |
bon, j'ai travaillé sur le plugin avec des modifications
|
@landryb @MaelREBOUX Je viens de pousser un J'ai ajouté un index spécifique aussi sur Pourriez-vous svp re-tester ? Je teste aussi de mon côté avec PostgreSQL et avec SQLite |
…ocal00 (substr de voie) & modification requêtes liées à la voie
Je viens de tester sans souci avec PostgreSQL et SQLITE :
|
hmmm, je m'y perds toujours avec ca.. de toute facon je vois que tes tests fonctionnels sont concluants, et je viens de vérifier ca revient au même, eg 6 caracteres en partant du premier = 7 caracteres en partant du 0e, je vois aussi que tu fais finalement aussi ces indexes pour la variante spatialite, c'est a mon avis pas plus mal :) et il y'avait effectivement bien plus de requetes impactées, j'avais pas du bien chercher... j'y pense, vu que depuis #453 on pointe vers le pseudo-fantoir 2024, peut-etre qu'il faudra aussi spécifier dans le readme que la nouvelle version du plugin est nécessaire pour que la recherche par voie fonctionne avec cette source de voies ? |
j'ai fait un test rapide avec postgis sur la commune 43006 (ALLY dans la haute loire):
donc pour moi on est bons. @MaelREBOUX tu testes chez toi ? |
Le millésime 2024 ne sera disponible que dans la prochaine version, donc je pense que c'est bon. Les gens se poseront la question de faire la MAJ. |
@MaelREBOUX as-tu eu le temps de tester ? |
@mdouchin je regarde |
Bonjour, J'ai tout remouliné hier soir. Les voies / adresses parraissent bien sur les formulaires. |
tu veux dire que tu selectionne une voie après qu'elle ait été autocomplétée avec ce que tu as tapé, et ca te donne 0 parcelle dans le champ au dessus ? si oui il te faut https://github.com/3liz/QgisCadastrePlugin/pull/451/files#diff-55aca78054c0f1d10a664afdc826f28c6e43c32d9054601e0d20179d9e8f686cL860 dans le plugin pour que la recherche remonte des parcelles. et je rappelle #345 (comment) pour debug-print les requetes SQL faites ;) |
Je propose de faire le merge et de publier rapidement une version ? Au pire, si @MaelREBOUX voit des soucis, on sortira rapidement une nouvelle version de correction ? |
je suis d'accord, étant donné qu'on m'a déjà demandé 'quand sort la version avec le support de 2024' plusieurs fois.. :) |
Idem ;-) |
…as l'identifiant majic (ccovoi) Depuis 3liz/QgisCadastrePlugin#451
…as l'identifiant majic (ccovoi) Depuis 3liz/QgisCadastrePlugin#451
ces codes voies proviennent de l'import depuis un FANTOIR généré depuis TOPO, les valeurs sont quand même uniques en concaténant le code insee+ccoriv.
en attendant que #345 soit 'vraiment' corrigé par un import direct de TOPO :)