0

我尝试使用 curl 语法:
curl http://localhost:8983/solr/update/csv?stream.file=/usr/local/src/apache-solr-3.6.0/example/exampledocs/my+file.csv&separator= ;&stream.contentType=text/plain;charset=utf-8
没有运气。
我得到:
-bash:意外标记';&'附近的语法错误

如果我尝试使用 %3b 对分号进行编码,它会显示:

[1] 16319
[2] 16320
-bash:stream.contentType=text/plain:没有这样的文件或目录
[2]+ 完成分隔符=%3b
管理员@主机:/usr/local/src/apache-solr-3.6。 0/example/exampledocs$

<html>  
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 400 undefined field: "field1;field2;field3;field4"</title>
</head>
<body><h2>HTTP ERROR 400</h2>
<p>Problem accessing /solr/update/csv. Reason:
<pre>    undefined field: "field1;field2;field3;field4"</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>

如您所见,分隔符未解码,并且以下参数未正确解析。

谁能帮我正确编码分号?
还是有另一种方法可以使用 ubuntu 上的 csv 文件更新 solr?

4

1 回答 1

0

实际上,用双引号括起来解决了这个问题:

curl "http://localhost:8983/solr/update/csv?stream.file=/usr/local/src/apache-solr-3.6.0/example/exampledocs/my+file.csv&separator=;&stream.contentType=文本/纯文本;字符集=utf-8"

奇怪的是为什么在双引号时它需要一个 + 来表示空白......

于 2012-06-15T09:42:50.563 回答