Эластичный поиск Построение вложенных запросов - PullRequest
0 голосов
/ 23 апреля 2019

Я довольно новичок в упругом поиске и хотел бы написать запрос для всех значений определенного поля?Я имею в виду, скажем, у меня есть поля «Число» и «change_manager_group» ... Я пробовал следующий запрос, чтобы напечатать все числа в индексе за последние 12 часов, что при совпадении с «change_manager_group»

curl -XGET "http://localhost:9200/index_test/_search?pretty" -H 'Content-Type: application/json' -d'
> {
>     "query": {
>       "bool": {
>         "must": [
>           {
>             "match_all": {}
>           },
>           {
>             "exists": {
>               "field": "Number"
>             }
>           },
>           {
>             "match_phrase": {
>               "change_manager_group": {
>                 "query": "Change Managers - 2"
>                }
>             }
>           },
>           {
>             "range": {
>               "actual_start": {
>                 "gte": 1555952852234,
>                 "lte": 1556039252234,
>                 "format": "epoch_millis"
>               }
>             }
>           }
>         ],
>         
>       }
>    }
> }
> '

К несчастью, когда я запускаю вышеуказанный запрос, я получаю следующую ошибку:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "json_parse_exception",
        "reason" : "Unexpected character ('}' (code 125)): was expecting double-quote to start field name\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@5c8e3895; line: 32, column: 8]"
      }
    ],
    "type" : "json_parse_exception",
    "reason" : "Unexpected character ('}' (code 125)): was expecting double-quote to start field name\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@5c8e3895; line: 32, column: 8]"
  },
  "status" : 500
}

Что я здесь не так делаю?

Спасибо.

1 Ответ

0 голосов
/ 23 апреля 2019

У вас есть лишняя запятая после массива must, удалите его, чтобы сделать его действительным запросом

curl -XGET "http://localhost:9200/index_test/_search?pretty" -H 'Content-Type: application/json' -d'
 {
     "query": {
       "bool": {
         "must": [
           {
             "match_all": {}
           },
           {
             "exists": {
               "field": "Number"
             }
           },
           {
             "match_phrase": {
               "change_manager_group": {
                 "query": "Change Managers - 2"
                }
             }
           },
           {
             "range": {
               "actual_start": {
                 "gte": 1555952852234,
                 "lte": 1556039252234,
                 "format": "epoch_millis"
               }
             }
           }
         ]                 <---- removed comma here

       }
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...