クライアントのために維持しているかなり大きな umbraco サイトがあります。特に 1 つのノード タイプには、サイトの特定の領域での検索に使用されるカスタムの検査インデクサー/サーチャーがあります。一部のデータを定義済みのインデックス フィールドにプッシュするスタートアップ ハンドラに接続された DirectoryIndexer_GatheringNodeData イベントがあります。
<IndexUserFields>
<add Name="clientBrandInfo" />
<add Name="brandIndex"/>
<add Name="productIndex"/>
</IndexUserFields>
<IncludeNodeTypes>
<add Name="DirectoryClient"/>
</IncludeNodeTypes>
定期的に (ローカルで再現できないようです) インデックスがbrandIndexフィールドとproductIndexフィールドを完全に削除する (存在しなかったかのようにインデックスから消える)問題を確認しています。
調査管理ダッシュボードを使用してバックオフィスでインデックス データを表示している場合、clientBrandInfo フィールドはまだ存在しますが、brandIndexフィールドとproductIndexフィールドは存在しません。
それらはすべてのノードで同時に消え、インデックスを再作成すると復元されます。
トレースログを確認したところ、カスタム フィールドが空に設定されているすべてのノードに対して NodeGathering イベントが呼び出されていることを示す兆候はありません (したがって、完全な再構築は行われません)。
このイベントが実行されるたびにログに記録し、インデックスにノード情報を設定します。
誰か提案はありますか?現在、インデックスの再構築を 1 時間ごとにスケジュールしており、これには約 3 分かかります。
私が観察した唯一のことは、問題が発生したときにインデックスがいくつかの削除を示していることですが、
開発者でのテストでは、lucene にインデックス付けされたノードを削除/更新/追加しても、失われたフィールドの問題 (削除あり) を再現できません。