Ich habe ein Eltern-Kind-Mapping in ElasticSearch:
übergeordnet: Benutzer
Kinder: Privilegien
Für Privilegien gibt es einige Eigenschaften, und eine davon ist " privileg Name ".
Die Abfrage gibt Benutzer mit bestimmten Berechtigungen zurück, aber ich möchte den aggregierten privilegiertenName für jeden Benutzer für die Berechtigungen zurückgeben, die der Abfrage has_child
entsprechen.
Ich kann alle Privilegien mit inner_hits
zurückgeben und sie auf der Client-Seite verarbeiten, aber das kann mühsam sein.
Gibt es eine Möglichkeit, die inner_hits
zu aggregieren?
Danke
Ich glaube, was Sie suchen, ist die Kinderaggregation .
Nehmen wir beispielsweise an, ich erstelle den folgenden Index mit dem Benutzer als übergeordnetes Element und Berechtigung als untergeordnetes Element:
%Vor%Dann füge ich die folgenden Benutzer hinzu:
%Vor%Dann gebe ich jedem Benutzer einige Privilegien. Nehmen wir an, ich gebe Sally das Privileg, 'hinzufügen', 'aktualisieren' und 'löschen':
%Vor%Aber ich gebe Bob nur das Privileg "hinzufügen" und "aktualisieren":
%Vor% Ich kann jetzt mit der Abfrage has_child
nach allen Benutzern suchen, die die Berechtigung zum Hinzufügen haben. Aber in aggs
kann ich auch eine vollständige Liste aller Privilegien anzeigen, die jeder der übereinstimmenden Benutzer hat:
Tags und Links elasticsearch