solr:undefined field ------------------------------ 4566bce013ce

时间:2012-04-13 13:55:37

标签: solr

我正在尝试将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

再次感谢您的帮助。

2 个答案:

答案 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文件中的记录进行二进制删除,直到只留下有问题的记录。然后你要么自己看问题,要么在这里发布记录和架构