使用 curl 重新加载 Solr 核心
Posted
技术标签:
【中文标题】使用 curl 重新加载 Solr 核心【英文标题】:Reload Solr core with curl 【发布时间】:2012-07-17 10:23:41 【问题描述】:我正在尝试通过以下语句重新加载 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 语句调用它,我在日志信息中看不到任何内容(也就是说,没有执行过reload过程)。
我必须更改一些配置数据吗?似乎呼叫没有到达 Solr 服务器...
【问题讨论】:
您的 curl 请求似乎没问题,我不明白为什么浏览器请求和 curl 请求之间可能存在差异,即使您没有收到任何错误。 @javanna,我也看不出任何区别。我会继续努力的。 【参考方案1】:尝试用双引号将命令中的 URL 括起来,如下所示:
curl "http://localhost:8983/solr/admin/cores?action=RELOAD&core=mycore"
希望对你有帮助
【讨论】:
【参考方案2】: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服务器”。
希望对你有帮助。
【讨论】:
添加我能看到的-A代理时没有区别。以上是关于使用 curl 重新加载 Solr 核心的主要内容,如果未能解决你的问题,请参考以下文章