1

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

再次感谢任何帮助。

4

2 回答 2

1

将此添加到我们的架构中,这应该可以修复它。

<types>
    <fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" />
    ....
</types>

<fields>
    <dynamicField name="*" type="ignored" multiValued="true" />
    ....
<fields>
于 2012-05-17T03:14:27.890 回答
-1

对 csv 文件中的记录进行二进制消除,直到你只剩下有问题的记录。然后你要么自己看到问题,要么在这里发布记录和架构

于 2012-04-13T14:00:13.107 回答