Extrair registro de várias matrizes com base em um filtro

Eu tenho documentos no ElasticSearch com a seguinte estrutura:

"_source": {
          "last_updated": "2017-10-25T18:33:51.434706",
          "country": "Italia",
          "price": [
            "€ 139",
            "€ 125",
            "€ 120",
            "€ 108"
          ],
          "max_occupancy": [
            2,
            2,
            1,
            1
          ],
          "type": [
            "Type 1",
            "Type 1 - (Tag)",
            "Type 2",
            "Type 2 (Tag)",
          ],
          "availability": [
            10,
            10,
            10,
            10
          ],
          "size": [
            "26 m²",
            "35 m²",
            "47 m²",
            "31 m²"
          ]
        }
      }

Basicamente, os registros de detalhes são divididos em 5 matrizes e os campos do mesmo registro têm a mesma posição de índice nas 5 matrizes. Como pode ser visto nos dados de exemplo, existem 5 matrizes (preço, ocupação máxima, tipo, disponibilidade, tamanho) que contêm valores relacionados ao mesmo elemento. Eu quero extrair o elemento que tem o campo max_occupancy maior ou igual a 2 (se não houver registro com 2 pegar um 3 se não houver 3 pegar um quatro, ...), com o preço mais baixo, nesse caso o registro e coloque o resultado em um novo objeto JSON como o seguinte:

{
          "last_updated": "2017-10-25T18:33:51.434706",
          "country": "Italia",
          "price: ": "€ 125",
          "max_occupancy": "2",
          "type": "Type 1 - (Tag)",
          "availability": 10,
          "size": "35 m²"
}  

Basicamente, a estrutura de resultados deve mostrar o registro extraído (que neste caso é o segundo índice de toda a matriz) e adicionar as informações gerais a ele (campos: "last_updated", "country").

É possível extrair esse resultado da pesquisa elástica? Que tipo de consulta eu preciso executar?

Alguém poderia sugerir a melhor abordagem?

questionAnswers(1)

yourAnswerToTheQuestion