Vermeiden des objektübergreifenden Suchverhaltens bei geschachtelten Typen in der elastischen Suche

Ich versuche herauszufinden, wie ein Dokument in der elastischen Suche am besten indiziert werden kann. Ich habe ein Dokument, Doc, das einige Felder enthält:

Doc
  created_at
  updated_at
  field_a
  field_b

Doc wird jedoch auch einige benutzerspezifische Felder haben. Zum Beispiel hat field_x den Wert 'A' für Benutzer 1 und field_x den Wert 'B' für Benutzer 2. Für jedes Dokument gibt es eine sehr begrenzte Anzahl von Benutzern (normalerweise 2, bis zu ~ 10). Wenn ein Benutzer nach field_x sucht, muss er nach dem Wert suchen, der zu ihm gehört. Ich habe verschachtelte Typen in ES untersucht.

Doc
  created_at
  updated_at
  field_x: [{
    user: 1
    field_x: A
  },{
    user: 2
    field_x: B
  }]

Wenn Benutzer 1 in Feld_x nach dem Wert 'A' sucht, sollte dieses Dokument zu einem Treffer führen. Dies sollte jedoch nicht der Fall sein, wenn Benutzer 1 nach dem Wert 'B' sucht.

Jedoch,laut den docs:

Eines der Probleme bei der Indizierung innerer Objekte, die mehrmals in einem Dokument auftreten, besteht darin, dass bei der Suche nach "objektübergreifenden" Objekten Übereinstimmungen auftreten

Gibt es eine Möglichkeit, dieses Verhalten bei verschachtelten Typen zu vermeiden, oder sollte ich einen anderen Typ untersuchen?

Zusätzliche Informationen zur Ausführung solcher Abfragen wären sehr wertvoll. Bereits beim Lesen der Dokumentation wurde festgestellt, dass verschachtelte Abfragen sich in Bezug auf die Leistung nicht zu stark von regulären Abfragen unterscheiden. Wenn jemand dies wirklich erlebt, würde ich es gerne hören.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage