3) нет

я есть документы в ElasticSearch со следующей структурой:

"_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²"
          ]
        }
      }

По сути, записи сведений делятся на 5 массивов, и поля одной и той же записи имеют одинаковую позицию индекса в 5 массивах. Как видно из данных примера, существует 5 массивов (цена, max_occupancy, тип, доступность, размер), которые содержат значения, относящиеся к одному и тому же элементу. Я хочу извлечь элемент с полем max_occupancy, большим или равным 2 (если нет записи с 2-ух захватить 3, если нет 3-х захватить четыре, ...), с более низкой ценой, в данном случае запись и поместите результат в новый объект JSON, как показано ниже:

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

В основном структура результата должна показывать извлеченную запись (которая в данном случае является вторым индексом всего массива) и добавлять к ней общую информацию (поля: «last_updated», «country»).

Можно ли извлечь такой результат из упругого поиска? Какой запрос мне нужно выполнить?

Может ли кто-нибудь предложить лучший подход?

Ответы на вопрос(1)

Ваш ответ на вопрос