使用cUrl将JSON数据发送到Solr

时间:2018-03-18 22:40:55

标签: json apache curl cmd solr

如何将JSON对象发送到solr collection usinc cUrl

我正在使用Windows 10。

curl -X POST -H "Content-Type:application/json" "http://localhost:8983/solr/solr_sample/update/json/docs" --data-binary "{'id': '1','title':'Doc 1'}"

当我使用这种格式时,我收到了一些警告信息:

curl -X POST -H 'Content-Type:application/json' 'http://localhost:8983/solr/sorl_sample/update/json/docs' --data-binary '{"id": "1","title":"Doc 1"}'
curl: (1) Protocol "'http" not supported or disabled in libcurl
curl: (3) [globbing] unmatched close brace/bracket in column 14

我使用 '

来解决它

当我使用第一个网址发送请求时,我收到了此回复:

{
  "responseHeader":{
    "status":0,
    "QTime":112}}

但是当我尝试通过搜索获得一些结果时,我无法在 docs []

中看到任何对象
curl -X GET "http://localhost:8983/solr/solr_sample/select?q=*:*"

结果:

{
      "responseHeader":{
        "status":0,
        "QTime":0,
        "params":{
          "q":"*:*"}},
      "response":{"numFound":0,"start":0,"docs":[]
      }}

当我使用Solr UI时,我可以毫无问题地添加JSON对象,也可以在终端中查看结果

1 个答案:

答案 0 :(得分:1)

您必须提交更新。将commit true或commitWithin 1000添加到请求中,例如:克。

curl -X POST -d' {"添加":{" doc":{" id":" delete.me& #34;"标题":" change.me"}" commitWithin":1000}}' -H" Content-Type:application / json" http://localhost:8983/solr/solr_sample/update

也有效:

curl -X POST -d' {"添加":{" doc":{" id":" delete.me& #34;"标题":" change.me"}}}' -H" Content-Type:application / json" http://localhost:8983/solr/solr_sample/update?commit=true