私は 600.000 のドキュメントを持つ Solr サーブレットを持っています。各ドキュメントには約 10 ~ 30 の多値フィールドが含まれています。バージョン 3.6 の Solr には更新機能がないため、ドキュメントを更新するために問題が発生しています。やりたいこと: やりたいこと: ドキュメントに挿入する必要があるフィールドだけが必要なアプリが必要です。例えば:
Document1( フィールド 1 / 値 1, フィールド 2 / 値 2)
このドキュメントに field3 / value3 を挿入したいと思います。今のところ、次のようにする必要があります。
Document1( フィールド1 / 値1, フィールド2 / 値2, フィールド3 / 値3)
各ドキュメントのフィールド数が多いため、上記のように他のすべてのフィールドを知る必要なく、field3 / value3 を追加したいだけです。
Document1( フィールド 3 / 値 3)
そのため、最初に Solr からすべてのデータを自動的に取得し、ドキュメントに挿入する必要がある 1 つのフィールドを追加するアプリケーションを作成しました。フィールドに 'ä' 'ö' 'ü' などの値が含まれるドキュメントを操作するまでは、すべてがうまくいきました。エラーを返すよりもSolr:
org.apache.solr.common.SolrException: 無効な UTF-8 開始バイト 0xfc
これは上記の投稿されたキャラクターが原因であることがわかりました。したがって、入力ストリームがどのエンコーディングであるかを知りたいと思ったのですが (これには juniversalchardet を使用しました)、エンコーディングが WINDOWS-1252 であることが指摘されました。私のアプリケーションは、Solr ライブラリを使用せずに Java で作成されています (標準の http ライブラリと xml 処理用の javax のみ)。エンコーディングが変更された場所と、それを回避する方法はありますか? サーブレットが Windows マシンで実行されているため、それは Java ですか、それともそうですか?
助けてくれてありがとう!
編集: Solrj ライブラリを使用する必要がありますか? これが私の問題を回避するかどうか誰かが知っていますか?