copyFieldのdestは明示的なフィールドではなく、動的フィールドにも一致しません

トピック作成者:ks-solruserml-bot (2024/06/20 14:50 投稿)
3
CloseClose

(The bot translated the original post https://lists.apache.org/thread/2z3czz5wpj0sv59dox140ofqcwj8w5bj into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは皆さん、

.../update/json/docs にPOSTしようとしていますが、ペイロードには "DISPLAY_MAPPING" : "foo" が含まれています。その結果、以下のエラーが500として返ってきます:

null:org.apache.solr.common.SolrException: copyField dest :'doc.DISPLAY_MAPPING_str' is not an explicit field and doesn't match a dynamicField.

これはある意味では問題ありません。これは、デフォルトのマッピングを持つ AddSchemaFields から来る唯一の場所であり、そのマッピングは以下の通りです:

<lst>
  <str name="valueClass">java.lang.String</str>
  <str name="fieldType">text_general</str>
  <lst name="copyField">
  <str name="dest>*_str</str>
  <int name="maxChars">256</int>
</lst>

ただし、DISPLAY_MAPPINGはスキーマに org.apache.solr.schema.StrField として存在しており、なぜ最初からそれに対して AddSchemaField がトリガーされるのか理解できません。

何かアドバイスはありますか?

よろしくお願いします。
Dima

返信投稿者:ks-solruserml-bot (2024/06/20 14:50 投稿)

追伸:Solr 8.7.0で、最近の脆弱性のために手動でJARファイルを更新しました。

Dima

返信投稿者:ks-solruserml-bot (2024/06/20 14:50 投稿)

更新フィールドを追加するアップデートプロセッサについてはあまり詳しくありませんが、正しく理解しているのであれば、その仕様に一致するすべてのフィールドに対してcopyFieldが行われることを意味します。つまり、"DISPLAY_MAPPING"という名前の文字列フィールドがある場合、それを別のフィールド名である"DISPLAY_MAPPING_str"にコピーしようとします...そしてエラーが言っているのは、スキーマに"DISPLAY_MAPPING_str"フィールドを処理できるものが存在しないということです。

copyFieldの仕様を削除するか、スキーマにその宛先フィールド名を処理する項目を追加することができます。

Solrに付属するデフォルトのスキーマ(_default schema)には、そのような処理ができる以下の内容が含まれています:

<dynamicField name="*_str" type="strings" stored="false" docValues="true" indexed="false" useDocValuesAsStored="false"/>

ありがとう、
Shawn

返信投稿者:ks-solruserml-bot (2024/06/20 14:50 投稿)

ありがとう、理解しました。

このコメント(6.x時代から継承されたもの)によると、それは「スキーマに未知のフィールドを追加するため」にあるとありますが、実際にはコメントが間違っているようです。実際には、すべてのフィールド(または少なくともその1つ以上)に対して_strが追加されているようです(他のフィールドでも同じエラーが発生することに成功しました)。これは賢明なことではなく、最初にこの問題を引き起こしたフィールドに対しても意味がありません。

6.6から8.7へのアップグレードで、この のデフォルト定義が何らかの理由で失われたようです。あるいは意図的に削除された可能性もあります。

再度ありがとうございます。
Dima

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?