lucene インデックスにさまざまな記事を保存しています。ユーザーが特定の用語またはフレーズを含む記事を検索する場合、すべての記事 (1000 から 10000 の記事の範囲) を表示する必要がありますが、検索結果には最新の記事が「バブルアップ」されています。
「日付フィールドブースティング」を使用して、Lucene で検索結果をバブルアップできると思います。誰かがこれについての詳細を教えてもらえますか?
前もって感謝します!
lucene インデックスにさまざまな記事を保存しています。ユーザーが特定の用語またはフレーズを含む記事を検索する場合、すべての記事 (1000 から 10000 の記事の範囲) を表示する必要がありますが、検索結果には最新の記事が「バブルアップ」されています。
「日付フィールドブースティング」を使用して、Lucene で検索結果をバブルアップできると思います。誰かがこれについての詳細を教えてもらえますか?
前もって感謝します!
SortComparatorSource インターフェイスを実装します。compare() 関数が 2 つの日付を比較する新しいScoreDocComparatorを作成する必要があります。次に、新しいソーターを使用して検索をソートする必要があります。このアドバイスは、 Lucene in Actionの第 6 章から取られています。
setBoostメソッドを使用して、インデックス時にインデックス内の特定のドキュメントの「ブースト」を設定できます。デフォルトのブースト値は 1.0 であるため、1.0 未満の値を設定すると、検索結果でドキュメントの関連性が低くなります。ドキュメントのブースト値をその年齢に関連付けることにより (ドキュメントが古くなるほどブーストが低くなります)、新しいコンテンツが検索結果でより関連性が高いように見せることができます。
setBoost
ドキュメントでは、インデックス作成時に設定されたブースト値は、取得したドキュメントでは使用できないことに注意してください(ブーストは機能します。取得時に値を読み戻して、インデックス時に正しい値を適用したかどうかを確認することはできません)。