Error is as follows :
[root@hdqsltest1 garyTestDocs]# curl http://localhost:8983/solr/update/csv? literal.id=book2&commit --data-binary @sample.csv -H 'Content-type:text/plain; charset=utf- 8'
[1] 16541
bash: commit: command not found
响应看起来像这样 -
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 400 missing content stream</title>
</head>
<body><h2>HTTP ERROR 400</h2>
<p>Problem accessing /solr/update/csv. Reason:
<pre> missing content stream</pre></p><hr /><i><small>Powered by Jetty://</small> </i><br/>
<br/>
<br/>
</body>
</html>
sample.csv输入 -
module,meets,question,response
General Questions,,"Please provide us a detailed company background","We are great"
schema.xml -
<field name="module" type="text" indexed="true" stored="true" />
<field name="meets" type="text" indexed="true" stored="true" />
<field name="question" type="text" indexed="true" stored="true" />
<field name="response" type="text" indexed="true" stored="true" />
solrconfig.xml中
<!-- CSV update handler, loaded on demand -->
<requestHandler name="/update/csv" class="solr.CSVRequestHandler" startup="lazy">
<lst name="defaults">
<str name="separator">,</str>
<str name="header">true</str>
<str name="encapsulator">"</str>
</lst>
</requestHandler>
另一个sample.csv
module,meets,question,response
General Questions,,"Please provide us a detailed company background","Yes"
我启用了远程流式传输。我的查询是
curl http://localhost:8983/solr/update/csv?literal.id=book12&commit=true --data-binary @sample.csv -H 'Content-type:text/plain; charset=utf-8'
所以我做错了什么。请指导。
solr的版本= 3.6.2。
索引它的全部意义是能够查询字段吗?我也想知道是否可以提取csv文件以将其文本放在各个字段中,我知道它将csv文件的文本放在内容字段中。有关更新/提取的任何建议吗?我在这里问了2个问题。谢谢。
答案 0 :(得分:1)
实际上刚解决了这个问题的问题
curl http://localhost.com:8983/solr/update/csv?commit=true --data-binary @ sample.csv -H'Content-type:text / plain; charset = utf-8'
但在执行此查询之前,我经常得到必需的id字段错误,我会转到我的查询并提及literal.id = ABC1(一些随机ID是唯一的)然后我仍然得到相同的错误。所以我去了我的schema.xml并删除了字段id和重新启动的solr所需的属性并运行上面的查询仍然得到错误。所以当我在sample.csv中创建一个id列并将其编入索引时,解决方案就出现了。我实际上不喜欢那样!但它奏效了。
答案 1 :(得分:0)
如果您启用了远程流媒体,则需要在请求中将内容类型和文件指定为查询参数。
以下是Solr Wiki
的示例具体来说,你的查询字符串看起来有点像这样 -
curl http://localhost:8983/solr/update/csv?stream.file=<remote path>/sample.csv&stream.contentType=text/plain;charset=utf-8
请注意,使用远程流式传输时,您需要确保Solr实例可以访问该文件的位置。
答案 2 :(得分:0)
首先更改目录以找到您的csv文件,
cd <file_path>
和
curl http://localhost:8983/solr/update/csv?commit=true --data-binary @sample.csv -H 'Content-type:text/plain; charset=utf-8'
从终端运行此脚本。我希望解决你的问题。