Skip to content
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

ED/US: Transparent searchable fields #9

Open
ridoo opened this issue Oct 25, 2023 · 7 comments
Open

ED/US: Transparent searchable fields #9

ridoo opened this issue Oct 25, 2023 · 7 comments
Assignees
Milestone

Comments

@ridoo
Copy link
Member

ridoo commented Oct 25, 2023

As a data editor, I want to make transparent which fields are search in a full text search, so that the UI can help end users using the search and better understand the results.

@ridoo ridoo converted this from a draft issue Oct 25, 2023
@ridoo ridoo changed the title DE: Transparent full text search ED: Transparent full text search Oct 25, 2023
@ridoo
Copy link
Member Author

ridoo commented Oct 26, 2023

See #2

@ridoo ridoo moved this from Backlog to Grooming in 52°North Innovation Prize Oct 26, 2023
@SpeckiJ
Copy link
Member

SpeckiJ commented Nov 7, 2023

As an End User i also want access to this information to optimize my search queries.

@SpeckiJ SpeckiJ changed the title ED: Transparent full text search ED/US: Transparent searchable fields Nov 7, 2023
@SpeckiJ SpeckiJ modified the milestones: should have, must have Nov 7, 2023
@SpeckiJ SpeckiJ moved this from Grooming to Backlog in 52°North Innovation Prize Nov 7, 2023
@ridoo
Copy link
Member Author

ridoo commented Jun 4, 2024

  • Nutzer Interaktion wichtig
  • "Felder" nur als indikator, warum ein Datensatz im Suchergebnis auftaucht
  • "Erklärung" welche Aspekte den Datensatz als relevant eingestuft haben
  • Nutzer kann entsprechend die Suche weiter einschränken, indem Aspekte ignoriert werden können

@ridoo ridoo moved this from Backlog to Ready in 52°North Innovation Prize Jun 17, 2024
@simeonwetzel simeonwetzel moved this from Ready to In Progress in 52°North Innovation Prize Jun 27, 2024
@ridoo
Copy link
Member Author

ridoo commented Jul 12, 2024

Suchindex enthält:

  • Text (Grundlage für das Embedding)
  • Attribute zum Embedding (strukturiert als JSON)

Ergebnis-Response enthält:

  • Text auf welchem Embedding (z.B. Gebäudetyp) Ergebnis erfolgt ist
  • Filtern auf den strukturierten Attributen (für Backend und Frontend filterbar)

@simeonwetzel
Copy link
Collaborator

@ridoo Weil das vorhin verwirrend war...

ein feature, das im Suchindex landet besteht aus einem Textteil ("page_content"). Dieser wird mit dem Embedding model enkodiert. Über die Embeddings kann ich semantisch passende Suchergebnisse zu meiner Suchanfrage (aus der auch in ein Embedding erstellt wird) suchen. Zusätzlich gibt es Metadaten ("metadata"). Diese können zum Filtern genutzt werden (siehe hierzu die Dokumentation der Vektordatenbank, die ich als Suchindex nutze.

Hier ein Beispiel, wie ein Feature im Suchindex landet:

# Hieraus wird ein embedding generiert
page_content="""
Feature Name: Freiwillige Feuerwehr Dresden Gompitz

Address: Altnossener Straße, 46a, Dresden, 01156, DE
amenity: fire_station
building: fire_station
name: Freiwillige Feuerwehr Dresden Gompitz
_osm_type: way
description: Abuildingthat was constructed to house fire fighting equipment ready for use, usually fire engines with fast access to the road. May also house the fire fighters themselves. May be used differently now. 
This tag is only describing the building. For a fire station (function), be sure to addamenity=fire_stationto the grounds."""

# Diese metadaten werden mitgespeichert, sodass auch darüber gefiltert werden kann
metadata = {'type': 'fire_station',
 'feature': '{\n  "type": "Polygon",\n  "coordinates": [\n    [\n      [\n        13.625671,\n        51.044119\n      ],\n      [\n        13.625741,\n        51.044385\n      ],\n      [\n        13.625928,\n        51.044365\n      ],\n      [\n        13.625924,\n        51.044352\n      ],\n      [\n        13.625908,\n        51.044291\n      ],\n      [\n        13.625858,\n        51.0441\n      ],\n      [\n        13.625671,\n        51.044119\n      ]\n    ]\n  ]\n}',
 'addr:city': 'Dresden',
 'addr:country': 'DE',
 'addr:housenumber': '46a',
 'addr:postcode': '01156',
 'addr:street': 'Altnossener Straße',
 'amenity': 'fire_station',
 'building': 'fire_station',
 'name': 'Freiwillige Feuerwehr Dresden Gompitz',
 '_osm_type': 'way',
 'description': 'Abuildingthat was constructed to house fire fighting equipment ready for use, usually fire engines with fast access to the road. May also house the fire fighters themselves. May be used differently now. \nThis tag is only describing the building. For a fire station (function), be sure to addamenity=fire_stationto the grounds.'}

@simeonwetzel
Copy link
Collaborator

und... die Metadaten werden natürlich auch für jedes Suchergebnissen mit zurückgegeben, da man ja am Ende kein Embedding sondern Menschen-lesbare Inhalte für die Suche möchte.

@ridoo
Copy link
Member Author

ridoo commented Sep 9, 2024

Generelle Properties separieren von "beliebigen". Must Properties: id, title, und description, geometry (optional), andere dann "gesammelt" in properties (oder so). Fehlende values dann mit Fallback versehen oder leer lassen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

No branches or pull requests

3 participants