15

我正在尝试通过以下句子重新加载 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 服务器......

4

2 回答 2

20

尝试用双引号将 URL 括在命令中,如下所示:

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

希望这可以帮助

于 2013-11-15T19:18:11.657 回答
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或sth检查“呼叫是否到达Solr服务器”。

我希望这会有所帮助。

于 2012-08-16T11:33:50.477 回答