Ich habe ein Problem bei der Entwicklung einer Webanwendung, für das ich eine Lösung entwickelt habe, suche aber nach anderen Ideen, mit denen ich einige Leistungsprobleme umgehen kann.
Problemstellung:
- ein Benutzer gibt mehrere Schlüsselwörter/Tokens ein
- die Anwendung sucht nach Übereinstimmungen mit den Token
- ein Ergebnis für jedes Token benötigen
- d.h. wenn ein Eintrag 3 Token hat, benötige ich die Eintrags-ID 3 Mal
- die Ergebnisse einstufen
- X Punkte für die Übereinstimmung mit dem Token vergeben
- Sortierung der Eintragsnummern nach Punkten
- wenn die Punktwerte gleich sind, werden die Ergebnisse nach Datum sortiert
Was ich tun möchten, aber nicht herausgefunden haben, ist 1 Abfrage zu senden, die so etwas wie die Ergebnisse einer in() zurückgibt, aber gibt eine doppelte Eintrag-ID für jedes Token Übereinstimmungen für jeden Eintrag-ID überprüft.
Gibt es eine bessere Möglichkeit, dies zu tun, als das, was ich tue, nämlich mehrere einzelne Abfragen mit einer Abfrage pro Token zu verwenden? Wenn ja, was ist der einfachste Weg, diese zu implementieren?
bearbeiten
Ich habe die Einträge bereits mit Token versehen, so dass zum Beispiel "see spot run" eine Eintrags-ID von 1 hat und drei Token, 'see', 'spot', 'run', und diese befinden sich in einer separaten Token-Tabelle mit entsprechenden Eintrags-IDs, so dass die Tabelle wie folgt aussehen könnte:
'see', 1
'spot', 1
'run', 1
'run', 2
'spot', 3