2

Solr の CurrencyField を使用しようとしています。サンプルの Solr インスタンス (apache-solr-4.0.0/example/solr/collection1) を使用して CurrencyField をテストしています。次のように、schema.xml にフィールドを追加しました。

<field name="money" type="currency" indexed="true" stored="false" required="true" multiValued="false" />

ただし、XML ファイルを投稿する場合:

<doc>
    <field name="id">12344321</field>
    <field name="text">4312341</field>
    <field name="money">1.30,USD</field>
</doc>

次のエラーが表示されます。

SEVERE: org.apache.solr.common.SolrException: [doc=4312341] missing required field: money

なぜこのエラーが発生するのですか?どうすれば修正できますか?

Solr 4.0.0 を使用しています

4

2 に答える 2

3

Paige は正しいです。CurrencyField が PolyField であるため、このエラーが発生しています。

次のドキュメントには、「money」フィールドと、2 つの特別な動的フィールド「__raw_amount」および「__currency」の3 つのフィールドが示されています。

<doc>
    <field name="money">1.30,USD</field>
</doc>

「お金」フィールドを保存しないようにするための回避策は、動的フィールドとして含めることです。

<dynamicField name="*_c" type="currency" indexed="true" stored="false" />

私の推測では、Solr は未加工の金額と通貨の両方に対して新しい格納フィールドを動的に生成します。

とはいえ、この質問はメーリング リストの有力候補です。

于 2012-11-13T03:08:58.140 に答える
0

多くの試行錯誤の後、私は解決策を発見しました。お金のフィールドは、schema.xml で stored="true" でなければなりません。

<field name="money" type="currency" indexed="true" stored="true" required="true" multiValued="false" />

なぜこれが機能するのかわかりません。

于 2012-11-12T21:13:59.730 に答える