Запрос полного JSON-объекта с использованиемasticsearch - PullRequest
0 голосов
/ 14 октября 2019

Я хочу запросить полный Json.

У меня есть объекты Json, сохраненные в разных документах.

_id: 1,
my_json: {
              "field1": "1",
              "field2": "2",
              "field3": "3",
              "field4": "4"
          }
_id: 2,
my_json: {
              "field1": "11",
              "field2": "22",
              "field3": "33",
              "field4": "44"
          } 

В моем запросе я хочу найти полное сочетание, а неединое поле. Поэтому я попробовал запрос ниже, но он возвращает пустой ответ.

{
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
            "my_json": [
              {
                "field1": "11",
                "field2": "22",
                "field3": "33",
                "field4": "44"
              },
              {
                "field1": "1",
                "field2": "2",
                "field3": "3",
                "field4": "4"
              }
            ]
          }
        }
      ]
    }
  }
}

Мне нужно работать с большим и большим количеством объектов Json, как указано выше. Поэтому я не могу использовать обычный запрос. Поэтому я попытался сопоставить полный объект JSON.

1 Ответ

0 голосов
/ 14 октября 2019

Если вы хотите сопоставить все свойства объекта JSON, вы можете сделать это, но используя один запрос термина на поле в вашем JSON, т.е. каждое поле вашего JSON должно соответствовать

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "my_json.field1": "11"
          }
        },
        {
          "term": {
            "my_json.field2": "22"
          }
        },
        {
          "term": {
            "my_json.field3": "33"
          }
        },
        {
          "term": {
            "my_json.field4": "44"
          }
        }
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...