我有一个名为 test.csv 的简单文件,它包含以下数据
id,author,title
1,sanjay,ABC
2,vijay,XYZ
我希望在 solr 中索引这个文件并向它传递一个名为 id=1 的唯一 ID 能够在将来查询这个文档(意味着所有值,即等同于 select * from table-name)并且同样希望索引许多这样具有文档 id 的文件,例如 id=2、id=3 等。
在我的 schema.xml 中,id 是一个字段
<field name="id" type="string" indexed="true" stored="true" />
和
<!-- Field to use to determine and enforce document uniqueness.
Unless this field is marked with required="false", it will be a required field
-->
<uniqueKey>id</uniqueKey>
以及文件中不存在 id 但我想将 id 作为文档级别唯一性的参数传递的实例,它会发出以下错误
[root@****ltest1 garyTestDocs]# curl http://localhost:8983/solr/update/csv?id='SL1' --data-binary @sample.csv -H 'Content-type:text/plain; charset=utf-8'
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 400 [doc=null] missing required field: ref</title>
</head>
<body><h2>HTTP ERROR 400</h2>
<p>Problem accessing /solr/update/csv. Reason:
<pre> [doc=null] missing required field: id</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</body>
</html>
所以本质上有两种情况,在文件中用 id 列索引上面的示例文件,另一种情况是有 id 列。但在这两种情况下,我都需要传递一个文档级别的唯一 ID,即 id='1' 或 id='2'。
您能否用这两种情况以及 curl 语法和 schema.xml (仅需要的字段)来解释您的答案