Ich habe eine Tabelle mit Id
und Text
Felder. Das Feld Text
enthält Sätze mit durchschnittlich 50 Wörtern. Es gibt> 1.000.000 Zeilen.Ist das Sortieren der Datenbank über eine benutzerdefinierte Funktion ineffizient?
Dies ist Teil einer Webanwendung, in der Benutzer in der Lage sein müssen, diese Sätze zu durchsuchen. Hier ist der Unterschied - Ich muss in der Lage sein, eine benutzerdefinierte Suchfunktion in C# geschrieben, die Machine Learning stattdessen verwendet.
Von dem, was ich verstehe, bedeutet dies Ich muss die gesamte Datenbank von> 1.000.000 Zeilen jedes Mal herunterladen, wenn ein Benutzer eine Suche macht! Das scheint mir wirklich ineffizient zu sein.
Wie würden Sie dies auf möglichst effiziente Weise umsetzen?
Wenn dies relevant ist, ich bin mit EF-Core mit LINQ .Where(my_custom_search_function)
, mit einer PostgreSQL-Datenbank
Fragen Sie nach Sortieren? oder über C# suchen? –
Beide. Meine Suchfunktion ist grundsätzlich eine Funktion, die 2 Elemente akzeptiert und vergleicht. Ich lade gerade alle Zeilen herunter und sortiere sie mit dieser Funktion und gebe dann die Top 5 zurück. Es ist mir egal, ob die Antwort C# -spezifisch ist, vielleicht gibt es eine Lösung, die nur SQL/die Datenbank beinhaltet? – Biarity
haben Sie in Betracht gezogen ["Volltextsuche"] (https://www.postgresql.org/docs/current/static/textsearch.html) ein Blog: [Postgres Volltextsuche ist gut genug!] (Http://rachbelaid.com/postgres-full-text-search-is-good-enough/) –