Простой диапазон CloudSearch

Я пытаюсь сделать очень простой запрос диапазона, но он возвращает «нулевые» результаты. Может ли кто-нибудь проверить, где я совершаю ошибку?

«Number_Field» — это поле INT, предполагается, что это дата, представленная в виде ггггммдд. Мне интересно получить все документы, опубликованные до 20150906 года. Я использую CloudSearch API 2013 года.

Вот что я пытаюсь сделать: {'q': '(range field=number_field {[,20150906])'}

q=%28range+field%3Dnumber_field+%7B%5B%2C20150906%5D%29

person Thomas    schedule 07.09.2015    source источник


Ответы (1)


В вашем запросе есть несколько ошибок:

  1. Вы начинаете диапазон как с включающего ([), так и с исключающего ({) операторов; должно читаться {,20150906], а не {[,20150906]

  2. Поскольку ваш запрос требует интерпретации (а не соответствия буквальной строки), вам необходимо использовать анализатор структурированных запросов. Я не уверен, какую библиотеку вы используете, но вы, вероятно, можете сделать это, добавив 'q.parser': 'structured' в свой массив параметров.

  3. Вы написали Number_Field так же, как и number_field, но имейте в виду, что имена полей чувствительны к регистру.

Дополнительные сведения см. в документах.

person alexroussos    schedule 08.09.2015