如何通过HTTP发送SOLR DateTime范围请求?

时间:2014-06-18 01:33:26

标签: http solr

我希望能够在我的solr索引上查询日期时间范围。通过UI,我可以像这样输入搜索查询:

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

然后在浏览器中生成一个URL,如下所示:

http://localhost:8983/solr/core0/select/?q=dateUTC%3A%5B2012-01-01T00%3A00%3A00Z+TO+2013-01-01T00%3A00%3A00Z%5D&version=2.2&start=0&rows=10&indent=on

然后在我的浏览器中显示XML格式的一些结果。 (注意,我使用的是SOLR 2.2版本的服务器)。我的目标是最终编写一个脚本来提取这些数据,但我似乎无法通过脚本发出此请求。

我的test.bat文件类似于:

curl "http://localhost:8983/solr/core0/select/?q=dateUTC%3A%5B2012-01-01T00%3A00%3A00Z+TO+2013-01-01T00%3A00%3A00Z%5D&version=2.2&start=0&rows=10&indent=on" > test.xml

但是,当我查看test.xml时,xml结果为空。我怀疑它与某些字符没有被正确解释有关,因为更简单的查询" foobar"工作正常并生成我正在寻找的xml文件:

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

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

Doh,问题非常简单。 %是命令提示符下的特殊字符,所以你也必须正确地转义它们(只做%%而不是%)。通过在任何地方添加额外的%符号,请求现在有效!

curl "http://localhost:8983/solr/core0/select/?q=dateUTC%%3A%%5B2012-01-01T00%%3A00%%3A00Z+TO+2013-01-01T00%%3A00%%3A00Z%%5D&version=2.2&start=0&rows=10&indent=on" > test.xml