我正在尝试将csv文件上传到索引。我什么时候收到错误:
org.apache.solr.common.SolrException: undefined field ----------------------------4566bce013ce
at org.apach.solr.schema.IndexSchema.getField(IndexSchema.java:1185)
我正在通过curl上传csv文件,如下所示:
curl http://localhost:8080/solrTest/update/csv -F commit=ture -F skipLine=1 -F stream.file=/home/solr/text.csv -F fieldnames=partId,desc,usage -H content-type:text/plain;charset=utf-8
我的所有字段都在schema.xml中定义,所以我不确定为什么我收到一个未定义的字段错误。
如果您需要更多信息,请与我们联系,谢谢。
编辑: 好的,在看过Itay Moav的帖子后,我决定做一些更简单的测试。我使用的csv文件只有一条带有partId的记录(test123)。我的schema.xml如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="parts" version="1.5">
<types>
<fieldType name="text_en_us" class="solr.StrField">
</types>
<fields>
<field name=partId type="text_en_us" indexed="true" stored="true" required="true" />
<uniqueKey>partId</uniqueKey>
</fields>
</schema>
即使使用此测试数据,我也会遇到相同的错误。唯一改变的是最后的数字。
org.apache.solr.common.SolrException: undefined field ----------------------------------7951b21305c3
再次感谢您的帮助。
答案 0 :(得分:1)
将此添加到我们的架构中,这应该可以解决它。
<types>
<fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" />
....
</types>
<fields>
<dynamicField name="*" type="ignored" multiValued="true" />
....
<fields>
答案 1 :(得分:-1)
对csv文件中的记录进行二进制删除,直到只留下有问题的记录。然后你要么自己看问题,要么在这里发布记录和架构