2011-01-18 2 views
6

Luceneは新鮮な文書を強調する手段を提供していますか?Luceneで新鮮な文書を追加する

たとえば、Luceneドキュメントに日付フィールドが含まれているとします。ユーザーがクエリを変更しなくても、最新のドキュメントをより高いスコアで提示することは可能ですか?

スコアリングアルゴリズムを完全にキャンセルするので、粗い「日付による並べ替え」ソリューションに頼らないでください。

答えて

3

ドキュメントをインデックスに配置するときにDocument.setBoost(float値)を使用します。

既存のドキュメントの値を常に再調整するか、日付が増えるフロート値を設定することができます。これにより、ドキュメントが挿入された時間に適用するだけです。

たとえば、1日目のドキュメントでは、ブースト値0で開始します。毎日、ブーストを1ずつ増やします。これは浮動小数点値で、毎年365回増分すると長時間続きます。

あなたが望むエフェクトを得るためには、ブーストの強さを試す必要があるかもしれません。

+0

ありがとうございました。それは理論的には非常に賢いですが、実際に動作するかどうかを完全にテストしなければなりません。とにかく、なぜそれが文書化されていないのかという疑問を提起する非常にスマートです。 1つは、料理の本や何かでそれを見つけることを期待します。 – yannisf

6

「Lucene in Action」が表示されます。第2版​​では、 187彼らはそれを行う方法を提供します。基本的には、CustomScoreQueryに拡張された独自のクエリを作成し、追加機能を追加することになります。

+0

あまりにも良い答え!ヒントありがとう! – yannisf

関連する問題