User Tools

Site Tools


gazedb

Gaze DB

Ziele

  • Unabhängigkeit
  • Gezielte Suchfunktionen
  • Erweiterbarkeit / Flexibilität
  • Stabilität
  • Geschwindigkeit!!!
  • Möglichkeit zur Kommunikation mit KI Schnittstellen und Algorithmen
  • Komplexere Distanzberechnung zu ermöglichen
  • Ersparen von Zeit bei der Typ-Konvertierung

Anforderung

  • Einfache kommunikation zwischen Indexer, Frontend, Http Server
  • Intelligente Indexierung
  • Kompression???
  • Intelligente Speicherverwaltung

Funktionen

filterBy()

  • Ähnlichkeit über ID
  • Ähnlichkeit über übermittelten Daten (Features) für Upload
  • Farbe
  • Form
  • Preis
  • Marke
  • Kategorie

Die Filterung soll ein Standardgerüst bekommen, aber flexible anpassbar sein, um weitere Filterkriterien zu ermöglichen. Z.B. wenn ein Kunde das Filtern nach „Shop“ haben will (möglich bei Produktsuchmaschinen). Gewichtung der einzelnen Blöcke (Farbe, Form) soll dynamisch anpassbar sein.

manhattanDist() Berechnung einer Manhattan-Distanz

euclidDist() Berechnung des Euklidischen Abstands

hammingDist() Berechnung der Hamming-Distanz

sortByDistAsc() Sortierung der Ergebnisse nach Ähnlichkeit aufsteigend

sortByDistDesc() Sortierung der Ergebnisse nach Ähnlichkeit absteigend

Weitere??

Ablauf

Vorschläge sind willkommen!!!!

Idee 1 (Java oder C++): Compiler auf Indexer, holt Daten aus Mongo und Compiliert dies als Klasse → an Frontend. Frontend hat ein Server der die Klasse liest, im Speicher hält und die Berechnungen durchführt und Classen wieder entfernt, wenn eine neue vorhanden ist. Die Klasse enthält die Daten eines Kunden für die Suche. PHP kommuniziert per curl mit dem eigenem Server.

Idee 2 (C++ Phyton): Compiler auf Indexer, holt Daten aus Mongo und Compiliert dies als Klasse → an Frontend. Frontend nutzt ein Http-Server und Phyton um mit der compilierten Klasse zu kommunizieren. Die compilierte Klasse wird für die Suche verwendet. Rückgabewerte werden direkt über Phyton und den Http-Server zurückgegeben als Json oder CSV.

Idee x:

Offene Fragen:

  • Wie soll die Indizierung durchgeführt werden?
  • Wie ist der Speicherbedarf?
  • Höchste Parallelisierung die möglich wäre?
  • Make or Buy?
  • Wie soll der Datenaustausch stattfinden?

Doc Anhang

gazedb.txt · Last modified: 2024/04/11 14:23 by 127.0.0.1