スコア表示ドキュメントを1つずつ並べ替えたSolr結果セットを前後に移動する必要があります。これを視覚化するには、最初にドキュメントタイトルのリストがユーザーに表示されます。次に、ユーザーはタイトルの1つをクリックして詳細を表示し、元のリストの次のドキュメントに戻ることなく移動する機会が必要です。別のタイトルをクリックします。
ドキュメントの表示中に変更されます:ドキュメントがすでに表示されている(他の検索で使用されている)ことを示すために、動的フィールドが変更されます(または作成されたものはまだ存在しません)。
私が直面している問題は、これらの変更を保持するためにドキュメントが変更され、インデックスが再作成されると、同じクエリの変更(つまり、スコアの変更)の結果セットでの位置が変わる場合があります(常にではありませんが、非常に厄介です)。ドキュメントのフィールドの1つでソートされた結果を参照する場合は発生しません)。そのため、「前へ」/「次へ」のナビゲーションが正しく機能しません。
スコア計算のフィールドにカスタムの重み付けやブースターを使用していません。また、参照中に変更された動的フィールドは、レコードセットを参照するために使用されるクエリには参加しません。
したがって、質問は次のとおりです。クエリに含まれていないドキュメントのフィールドを変更すると、関連性スコアが変更される可能性がありますか?そして、可能であれば、どうすればそれを制御できますか?
アップデート
私はいくつかのテストを行い、以下を追加できます:
フィールドが修正されていない場合でも、ドキュメントは結果セット内の場所を変更します。ドキュメントをリクエストし、フィールドを変更せずにインデックスを再作成すると、次に同じインデックスに対して同じクエリが実行されたときに別の場所になります。
これは、結果セットが明示的にソートされている場合でも発生するため( "first_name DESC")、スコア(更新日によって異なります)は関係しません。ドキュメントは同じままで、フィールド結果セットの並べ替えは同じですが、位置が変わります。
それを回避する方法はまだわかりません。