Como evitar o comportamento de pesquisa entre objetos com tipos aninhados na pesquisa elástica

Eu estou tentando determinar a melhor maneira de indexar um documento na pesquisa elástica. Eu tenho um documento, Doc, que tem alguns campos:

Doc
  created_at
  updated_at
  field_a
  field_b

Mas o Doc também terá alguns campos específicos para usuários individuais. Por exemplo, campo_x terá o valor 'A' para o usuário 1 e campo_x terá o valor 'B' para o usuário 2. Para cada documento, haverá um número muito limitado de usuários (normalmente 2, até ~ 10). Quando um usuário pesquisa em field_x, ele deve pesquisar o valor que pertence a eles. Eu tenho explorado tipos aninhados no ES.

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

Quando o usuário 1 pesquisa em field_x pelo valor "A", esse documento deve resultar em um hit. No entanto, não deve quando o usuário 1 pesquisar por valor 'B'.

Contudo,de acordo com os docs:

Um dos problemas ao indexar objetos internos que ocorrem várias vezes em um documento é que a correspondência de pesquisa "objeto cruzado" ocorrerá

Existe uma maneira de evitar esse comportamento com tipos aninhados ou devo explorar outro tipo?

Informações adicionais sobre o desempenho de tais consultas seriam muito valiosas. Apenas lendo os documentos, afirmou que as consultas aninhadas não são muito diferentes em termos de desempenho como relacionadas a consultas regulares. Se alguém tiver experiência real, eu adoraria ouvir isso.

questionAnswers(1)

yourAnswerToTheQuestion