使用curl重新加载Solr核心

16

我正在尝试通过以下语句重新加载Solr核心(版本为3.6.0):

curl http://localhost:8983/solr/admin/cores?action=RELOAD\&core=mycore

当我执行它时,我会得到以下响应:

<?xml version="1.0" encoding="UTF-8"?>
<response>
   <lst name="responseHeader">
      <int name="status">0</int>
      <int name="QTime">1316</int>
   </lst>
</response>

当我在浏览器中输入这样的URL时,我会得到类似的响应(不同之处在于QTime的值)。

我的问题是,如果我从浏览器中调用该URL,我可以在日志信息中看到重新加载已执行,但如果我从CURL语句中调用它,则无法在我的日志信息中看到任何内容(也就是说,没有重新加载进程被执行)。

我需要更改一些配置数据吗?看起来调用没有到达Solr服务器...


你的curl请求看起来没问题,我不知道为什么浏览器请求和curl请求之间会有差异,尤其是因为你没有收到任何错误信息。 - javanna
@javanna,我也没有看到任何区别。我会继续尝试的。 - asuka
2个回答

22

请尝试使用双引号将命令中的URL括起来,如下所示:

curl "http://localhost:8983/solr/admin/cores?action=RELOAD&core=mycore"

希望这有所帮助。


4

1. 尝试使用 -A 参数指定 User-Agent

curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" http://localhost:8983/solr/admin/cores?action=RELOAD\&core=mycore

2. Curl无法执行js脚本

请确保这不是由于js脚本造成的问题。

您可以使用Chrome的开发者工具或Firebug+Firefox来检查http通信过程。

3.使用Wireshark或其他工具检查“调用是否到达Solr服务器”。

希望能对您有所帮助。


添加 -A 代理后,就我所见,没有任何变化。 - Mark Bennett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接