magloire / vidisearch

2 stars 2 forks source link

Søgning i plandokumenter #1

Closed baffioso closed 6 years ago

baffioso commented 6 years ago

Vi skal have indexeret teksten fra plandokumenterne i elasticsearch sammen med de øvrige oplysninger som hentes fra plansystemDK WFS.

@magloire @Larsklindt @mapcentia Har lavet udkast til python script som opdaterer eksisterende lokalplan-tabel i postgres med tekst fra lokalplandokumenternes pdf'er (gik fint med alle ~150 lokalplaner i Ballerup).

https://gist.github.com/baffioso/79e3c5d32dd11cf677168ab39b72386a

Herefter kan man bruge GC2 til at indexerer i ES. Der skal dog laves lidt tilretninger i scriptet, så det også kan håndtere OCR læsning af de pdf'er der ikke indeholder tekst. Dette kan gøres med textract modulet.

mapcentia commented 6 years ago

Det er en god ide at gøre det på den måde. Der skal nok laves en "tracker", som holder styr på hvilke pdf'er, der er ændret, så alle ikke skal downloades og parses hver gang.

baffioso commented 6 years ago

Vi har nu fået indexeret lokaldokumenterne i ES, som kan tilgås med query dsl som post til dette endpoint:

https://ballerup.mapcentia.com/api/v2/elasticsearch/search/collector/snit_plansearch/lokalplan

Jeg har snakket med Martin omkring hvordan det evt. kan gøres:

  1. Forespørg ES med en term f.eks. plankeværk:
    {
    "_source":{
    "excludes":[
      "properties.document"
    ]
    },
    "query":{
    "match":{
      "properties.document": "banner"
    }
    }
    }
  2. Når der klikkes på et resultat fra 1. kan geometri hentes som geojson fra GC2 SQL api med planid som nøgle :

https://ballerup.mapcentia.com/api/v1/sql/collector?q=SELECT plannr, plannavn, doklink, anvendelsegenerel, the_geom from snit_plansearch.lokalplan_geom where planid = 1118292

Ang. SQL API'et, så kan der sættes &srs=4326 så det kommer i lat/log. API'et defaulter til 3857, da det er det OpenLayers bruger internt. Man kan nu også sende en body til v2 af SQL API'et:

curl -XPOST "https://ballerup.mapcentia.com/api/v2/sql/collector" -d'{"q": "SELECT plannr, plannavn, doklink, anvendelsegenerel, the_geom from snit_plansearch.lokalplan_geom where planid = 1118292", "srs":"4326"}'