Запрос Elasticsearch: синтаксис для ограничения диапазона дает 400 - PullRequest
0 голосов
/ 08 мая 2018

Я использую python для связи с сервером ElasticSearch. Я использую пакетasticsearch и форматирую запросы и передаю их в функцию поиска в параметре body.

Отправка запросов работала просто отлично. Например, этот запрос работает:

{'query': {'constant_score': {'filter': {'bool': {'must': {'terms': {'id.keyword': ['d42bdc8a-a38b-43fa-9283-13b5e5c08c6e']}}}}}}}

Теперь я хочу ограничить диапазон, поэтому я добавлю небольшой сегмент (отступ для ясности):

{'query': 
    {'constant_score': 
        {'filter': 
            {'bool': 
                {'must': 
                    {'range': 
                        {'startTime': 
                            {'format': "yyyy-MM-dd'T'HH:mm:ss.SSS",
                             'gte': '2018-01-20T17:19:43.393',
                             'lte': '2018-04-01T17:19:43.393'}
                        },
                     'terms':
                         {'id.keyword':
                             ['d42bdc8a-a38b-43fa-9283-13b5e5c08c6e']
                         }
                     }
                 }
             }
         }
     }
}

Запрос, который выглядит идентично (для меня), работал в R. Я получаю статус 400, хотя (неправильный запрос). Кто-нибудь видит в чем проблема?

1 Ответ

0 голосов
/ 08 мая 2018

Вы почти там, это правильный запрос, который будет работать:

{'query': 
    {'constant_score': 
        {'filter': 
            {'bool': 
                {'must': [
                    {'range': 
                        {'startTime': 
                            {'format': "yyyy-MM-dd'T'HH:mm:ss.SSS",
                             'gte': '2018-01-20T17:19:43.393',
                             'lte': '2018-04-01T17:19:43.393'}
                        }
                    },
                    {
                     'terms':
                         {'id.keyword':
                             ['d42bdc8a-a38b-43fa-9283-13b5e5c08c6e']
                         }
                    }
                 ]
               }
             }
         }
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...