Hallo Hallo!
Ich stehe vor einem kleinen Performance Problem, zu welchem ich schon mehrere Ansätze habe, jedoch nicht weiß, ob es nicht auch noch performantere Lösungen gibt.
Das Problem:
Angenommen wir haben ein Suchformular mit mehreren möglichen Suchoptionen. Nehmen wir hier einfach das Beispiel der Suche nach einem Auto. Als Suchoptionen haben wir hier die Fahrzeugmarke, die Farbe des Fahrzeuges, das Baujahr und die Laufleistung. Ich wähle die Farbe blau und führe die Suche aus.
Das Ergebnis enthält alle blauen Autos jeglicher Fahrzeugmarken, jeglicher Baujahre und Laufleistungen. Im Suchergebnis soll nun auch angezeigt werden, wieviele blaue Fahrzeuge es zu jeder verfügbaren Fahrzeugmarke gibt. Angenommen die Fahrzeugmarke "Alfa Romeo" befindet sich im Pool. Die Fahrzeugmarke "Alfa Romeo" soll angezeigt werden mit der Anzahl der verfügbaren blauen Fahrzeuge. Die vorhandenen Sucheergebnisse wird in diesem Fall also nach Fahrzeugmarke gefiltert.
Lösungsansätze:
Welcher Weg wäre performanter und gibt es andere Ansätze, um so performant wie möglich zu arbeiten?
Ich stehe vor einem kleinen Performance Problem, zu welchem ich schon mehrere Ansätze habe, jedoch nicht weiß, ob es nicht auch noch performantere Lösungen gibt.
Das Problem:
Angenommen wir haben ein Suchformular mit mehreren möglichen Suchoptionen. Nehmen wir hier einfach das Beispiel der Suche nach einem Auto. Als Suchoptionen haben wir hier die Fahrzeugmarke, die Farbe des Fahrzeuges, das Baujahr und die Laufleistung. Ich wähle die Farbe blau und führe die Suche aus.
Das Ergebnis enthält alle blauen Autos jeglicher Fahrzeugmarken, jeglicher Baujahre und Laufleistungen. Im Suchergebnis soll nun auch angezeigt werden, wieviele blaue Fahrzeuge es zu jeder verfügbaren Fahrzeugmarke gibt. Angenommen die Fahrzeugmarke "Alfa Romeo" befindet sich im Pool. Die Fahrzeugmarke "Alfa Romeo" soll angezeigt werden mit der Anzahl der verfügbaren blauen Fahrzeuge. Die vorhandenen Sucheergebnisse wird in diesem Fall also nach Fahrzeugmarke gefiltert.
Lösungsansätze:
- Zu jeder möglichen Option ein Query ausführen, welches das gewählte Suchargument beachtet.
Beispiel: Ein Query zählt alle verfügbaren Fahrzeugmarken und die dazu verfügbaren Fahrzeuge mit der Farbe blau. Im Endeffekt werden hier bei jeder abgesendeten Suchanfrage etliche Queries ausgeführt, die die Anzahl der Treffer für alle möglichen Suchargumente ermittelt. - Die Suche ausführen und das daraus resultierende Array mit allen Treffern nachträglich durchlaufen und somit die Anzahl aller möglichen Optionen filtern.
Welcher Weg wäre performanter und gibt es andere Ansätze, um so performant wie möglich zu arbeiten?
Kommentar