Ich habe eine Eltern / Kind-Struktur in 3 Ebenen. Sagen wir:
Firma -> Mitarbeiter -> Verfügbarkeit
Da die Verfügbarkeit (und auch der Mitarbeiter) hier häufig aktualisiert wird, wähle ich die Verwendung der Eltern / Kind-Struktur für verschachtelte. Und die Suchfunktion funktioniert einwandfrei (alle Dokumente in korrekten Shards).
Jetzt möchte ich diese Ergebnisse sortieren. Das Sortieren nach Metadaten des Unternehmens (1. Ebene) ist einfach. Ich muss aber auch nach 3. Stufe sortieren (Verfügbarkeit).
Ich möchte eine Liste von Unternehmen, die sortiert sind nach:
- Entfernung vom Standort bei angegebenem ASC
- Bewertung DESC
- Bald Verfügbarkeit ASC
Zum Beispiel:
Unternehmen A ist 5 Meilen entfernt, hat die Bewertung 4 und sobald einer seiner Mitarbeiter in 20 Stunden verfügbar ist, ist Unternehmen B ebenfalls 5 Meilen entfernt, hat ebenfalls die Bewertung 4, aber bald ist einer seiner Mitarbeiter in 5 Stunden verfügbar.
Daher muss das Sortierergebnis B, A sein.
Ich möchte jedem dieser Daten ein besonderes Gewicht hinzufügen, daher habe ich begonnen, Aggregationen zu schreiben, die ich später in meinem custom_score-Skript verwenden kann.
Vollständiger Inhalt zum Erstellen von Indizes, Importieren von Daten und Suchen
Jetzt habe ich es geschafft, eine Abfrage zu schreiben, die tatsächlich das Ergebnis zurückgibt, aber der Bucket für die Verfügbarkeitsaggregation ist leer. Allerdings bekomme ich auch Ergebnisse zu strukturiert zurück, ich möchte sie abflachen.
Derzeit bekomme ich zurück:
Firmen-IDS -> Mitarbeiter-IDS -> Erstverfügbarkeit
Ich hätte gerne eine Aggregation wie:
Firmen-IDS -> erste Verfügbarkeit
Auf diese Weise kann ich mein custom_score
Skript erstellen, um die Punktzahl zu berechnen und sie richtig zu sortieren.
Vereinfachte Frage:
Wie kann man nach mehrstufigen (Enkel-) Kindern sortieren / aggregieren und möglicherweise das Ergebnis reduzieren?