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 で定義されているため、未定義フィールド エラーが発生する理由がわかりません。

さらに情報が必要な場合はお知らせください。ありがとうございます。

編集: OK、Itay Moav の投稿を読んだ後、もっと簡単なテストを行うことにしました。partId (test123) を持つレコードが 1 つだけの csv ファイルを使用しています。私の 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 に答える