Как отправить запрос SOLR DateTime range через HTTP?

#http #solr

#http #solr

Вопрос:

Я хочу иметь возможность запрашивать диапазон дат и времени в моем индексе solr. Через пользовательский интерфейс я могу ввести поисковый запрос следующим образом:

 dateUTC:[2012-01-01T00:00:00Z TO 2013-01-01T00:00:00Z]
  

Который затем генерирует URL-адрес в браузере следующим образом:

 http://localhost:8983/solr/core0/select/?q=dateUTC:[2012-01-01T00:00:00Z TO 2013-01-01T00:00:00Z]amp;version=2.2amp;start=0amp;rows=10amp;indent=on
  

Который затем показывает некоторые результаты в форматировании XML в моем браузере. (Обратите внимание, я использую сервер с версией 2.2 SOLR). Моя цель — в конечном итоге написать скрипт для извлечения этих данных, но, похоже, я не могу выполнить этот запрос через скрипт.

Мой файл test.bat выглядит примерно так:

 curl "http://localhost:8983/solr/core0/select/?q=dateUTC:[2012-01-01T00:00:00Z TO 2013-01-01T00:00:00Z]amp;version=2.2amp;start=0amp;rows=10amp;indent=on" > test.xml
  

Однако, когда я смотрю на test.xml , результаты xml пусты. Я подозреваю, что это связано с неправильной интерпретацией некоторых символов, потому что более простой запрос «foobar» работает нормально и генерирует файл xml, который я ищу:

 curl http://localhost:8983/solr/core0/select/?q=foobaramp;version=2.2amp;start=0amp;rows=10amp;indent=on > testSuccess.xml
  

Любая помощь будет оценена.

Комментарии:

1. Можете ли вы попробовать заменить foobar в вашем последнем примере запросом из вашего первого примера и заключить URL-адрес в двойные кавычки (поскольку теперь он содержит пробелы)? Таким образом, вы позволяете curl позаботиться о кодировке URL.

2. Я смог это выяснить. См. Ответ

Ответ №1:

Да, проблема была очень простой. % — это специальные символы в командной строке, поэтому вы также должны правильно их экранировать (просто введите %% вместо%). Добавив дополнительный символ% везде, запрос теперь сработал!

 curl "http://localhost:8983/solr/core0/select/?q=dateUTC%:%[2012-01-01T00%:00%:00Z TO 2013-01-01T00%:00%:00Z%]amp;version=2.2amp;start=0amp;rows=10amp;indent=on" > test.xml