Skip to content

sogis/p-trigramm-suche

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

POC Suche mittels pg_trgm

Ziel des POC (Proof of Concept) war, die Performance und Treffgenauigkeit einer Implementation der "Volltextsuche" mittels der PostgreSQL Extension pg_trgm zu untersuchen. Es handelt sich dabei nicht um eine Volltextsuche im klassischen Sinn, in welcher Suchbegriffe auf die jeweiligen Wortstämme "referenziert" werden. Auch auf "Autokorrektur" der Sucheingaben wird bewusst verzichtet.

Das Resultat ist sowohl bezüglich Performance und Treffgenauigkeit sehr überzeugend. So werden bei einem Umfang der Indextabelle von gut einer Million Zeilen treffende Resultate in 0 - 50 ms zurückgegeben.

Index-Tabellen

Im POC werden alle zu durchsuchenden Features (aus vielen unterschiedlichen Ebenen) in eine gemeinsame Indextabelle "feature" geladen. Die Suche nach GIS-Ebenen (mittels Metadaten) erfolgt über die Indextabelle "ebene".

Aus dem INTERLIS-Modell SO_AGI_Suchindex_20240415.ili abgeleitetes DDL-Skript zur Erstellung der Tabellen: iliCreateSchema.sql

Die für die Performance entscheidenden Trigramm-Indexe sind in der Datei schema_idx.sql definiert.

Test-Queries

Diese befinden sich im Ordner testqueries/.

Die Nummern in den Dateinamen beziehen sich dabei immer auf die simulierte Anzahl Begriffe der Benutzereingabe.

Index-Befüllung

Im POC wie auch später im produktiven Betrieb werden die Index-Tabellen mittels GRETL "befüllt". Die entsprechenden ETL-Skripte liegen im Ordner gretl/.

About

Prototyping fts search capabilities

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published