Jak uniknąć zachowania wyszukiwania obiektów krzyżowych z zagnieżdżonymi typami w elastycznym wyszukiwaniu

Próbuję określić najlepszy sposób indeksowania dokumentu w elastycznym wyszukiwaniu. Mam dokument, Doc, który ma kilka pól:

Doc
  created_at
  updated_at
  field_a
  field_b

Ale Doc będzie miał także kilka pól specyficznych dla poszczególnych użytkowników. Na przykład pole_x będzie miało wartość „A” dla użytkownika 1, a pole_x będzie miało wartość „B” dla użytkownika 2. Dla każdego dokumentu będzie bardzo ograniczona liczba użytkowników (zazwyczaj 2, do ~ 10). Gdy użytkownik szuka w field_x, musi wyszukać wartość, która do nich należy. Badałem zagnieżdżone typy w ES.

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

Gdy użytkownik 1 wyszuka wartość field_x dla wartości „A”, ten dokument powinien spowodować trafienie. Jednak nie powinien, gdy użytkownik 1 przeszukuje wartość „B”.

Jednak,według doktorów:

Jednym z problemów podczas indeksowania obiektów wewnętrznych, które występują kilka razy w dokumencie, jest to, że wystąpi dopasowanie wyszukiwania „obiektowego”

Czy istnieje sposób na uniknięcie tego zachowania przy zagnieżdżonych typach lub czy powinienem zbadać inny typ?

Dodatkowe informacje dotyczące wykonywania takich zapytań byłyby bardzo cenne. Już po przeczytaniu dokumentów stwierdzono, że zagnieżdżone zapytania nie różnią się pod względem wydajności od zwykłych zapytań. Jeśli ktoś naprawdę to przeżyje, chciałbym to usłyszeć.

questionAnswers(1)

yourAnswerToTheQuestion