1

Solr 4 のインデックスを更新する必要がありますが、予期しない結果が得られています。SolrNet を使用して AddRange() を実行する C# プログラムを実行します。このプロセスでは、新しいドキュメントを追加し、既存のドキュメントを更新しようとしています。

一部のレコードのフィールドは最新のデータで更新されますが、他のフィールドはまだ古い情報を表示しています。ドキュメントに示されている情報を使用する必要がありますか?

ドキュメントは、フィールドに を設定できることを示してupdate="set|add|inc"います。既存のレコードを更新したい場合は、set? また、フィールドを削除する場合、それを削除するには、Solr をシャットダウンして再起動する必要がありますか? または設定しnull="true"ますか?

Solr データの更新に関する有益な情報を教えてください。ありがとうございました。

4

1 に答える 1

4

リストするドキュメント参照は、Solr 4 のアトミック更新のパラメーターについて説明していますが、これは現在 SolrNet ではサポートされていません。詳細については、問題 199を参照してください。

このサポートが SolrNet に追加されるまでは、インデックス内のドキュメントを更新するための唯一のオプションは、必要な更新/削除フィールドを適切に設定してドキュメント全体 (C# のオブジェクト) を再送信することです。内部的に、Solr は更新されたフィールドでドキュメントをインデックスに再度追加します。

また、インデックスにドキュメントを追加/更新する場合、コミットが発行されるまで、これらの変更はインデックスに対するクエリに表示されません。AddParametersCommitWithinのオプションを使用して、Solr がこれを内部的に処理できるようにすることをお勧めします。これについては、 SolrWiki - CommitWithinで詳しく説明されています。

于 2013-04-24T12:15:38.513 に答える