SDFIdk / gsearch

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gsearch

Gsearch bygger på følgende hovedprincipper:

  • Udvikles i dette repo.
  • Brugere inddrages i så bredt omfang som muligt. Der bliver løbende etableret test / udviklings services til "tidlig" kommentering fra brugere
  • Tilbyder restservices, som givet en søgetekst og eventuelle filtre, returnerer en række objekter underlagt de givne filtre, der "ligner" søgetekst.
  • Sorteringen af objekterne, er defineret ud fra et sæt af givne sorteringsmuligheder (der vil typisk altid være mulighed for alfabetisk sortering efter visningstekst)
  • Et tyndt forretningslag, som udstiller REST services. Skrevet i Java.
  • Forretningslaget skal som udgangspunkt være selvkonfigurerende (ud fra data i databasen)
  • Forretningslaget dokumenteres som swagger
  • Forretningslaget skal testes gennem formaliseret integrationstest (CI / CD)
  • Et databaselag i Postgres (minimum v.12), som udstiller søgefunktioner eller views i et særskilt schema (fx. API)
  • Databasen definerer søgningerne. Der vil således ikke (eller i meget begrænset omfang) være behov for konfigurationsfiler til applikationslaget.
  • Alle udstillede objekter i databassen, dokumenteres med Postgres Comment (som kan aflæses af forretningslæget til udstilling)

Project structure

This is a Spring Boot project using Maven, Spring Web and JDBI.

Target Java version is 17.

Configuration

Database connection is configured by suppling environment variables PGHOST, PGPORT, PGDATABASE, PGUSER, PGPASSWORD and PGMAXPOOLSIZE.

How to run as standalone

PGHOST=localhost PGPORT=5432 PGDATABASE=gsearch PGUSER=postgres PGPASSWORD=postgres PGMAXPOOLSIZE=4 mvn spring-boot:run

How to build/run with Docker

Build image with:

docker build . -t gsearch

Run image exposed at port 8080 with:

docker run --add-host host.docker.internal:host-gateway --env-file dev.env -p 8080:8080 gsearch

NOTE: dev.env specifies environment variables to local database and --add-hosts makes local postgresql instance available inside the container. This is not needed if connecting to an external database.

Moving from Geosearch to Gsearch

GSearch har i princippet samme funktionalitet og virkemåde som SDFI's nuværende søgekomponent, GeoSearch, men med en række forbedringer, bl.a. i muligheden af at sætte filtre, der kan fokusere og dermed optimere søgningen.

Geosearch Gsearch
- husnummer
- navngivenvej
adresser adresse
kommuner kommune
matrikelnumre matrikel
matrikelnumre_incl_udgaaet -
matrikelnumre_udgaaet matrikel_udgaaet
opstillingskredse opstillingskreds
politikredse politikreds
postdistriker postnummer
regioner region
retskredse retskreds
sogne sogn
stednavn_v2 -
stednavn_v3 stednavn

About

License:MIT License


Languages

Language:Gherkin 39.8%Language:Java 35.2%Language:PLpgSQL 24.9%Language:Dockerfile 0.1%