2011-06-21 12 views
0
  1. 私は検索中にluceneがどのようなスコアを実行するのか理解しようとしていますか?私はLucene TermVectorに統計情報が含まれているのを見ています。用語を検索すると、クエリ時間にスコアがどのように計算されますか?検索時間中にルーセンスコアのどの部分が計算されますか?

  2. 検索中にTermVectorとその統計情報は使用されますか?もしそうなら、どのように?

答えて

1

Similarityクラスは、ドキュメントの採点を担当します。

Collectorは、ドキュメントを繰り返し処理します。それはScorerと一緒に使用され、スコアを割り当て、それらのスコアによって文書をランク付けします。 Scorerインスタンスは、特定の条件でスコアを計算します。十数種のスコアラーがあります。たとえば、TermScorerは以下のように生スコアを計算します。

getSimilarity().tf(f)*weightValue 

重み値はクエリから得られます。索引時に正規化がオンになっている場合(照会間のスコアが多少なりとも匹敵するように)、その後正規化が適用されます。正規化係数はあらかじめ計算されキャッシュされています。

+0

明白な類似性クラスはスコアリングを実行しています、私は具体的な詳細を探しています。ex: "cats dogs"の検索中に得点はどうなりますか、スコアリングの流れは?レバレッジ? – realnumber

+0

Luceneで使用される数式は、多項式問合せの処理方法など、Similary javadocページで詳しく説明されています。このすべての機械の実装に興味があるなら、[Collector](http://lucene.apache.org/java/3_0_3/api/core/org/apache/lucene/search/Collector.html)を見てください。 )と[Scorer](http://lucene.apache.org/java/3_0_3/api/core/org/apache/lucene/search/Scorer.html)のクラスがあります。一般に、Luceneコードを参照することは良い考えです。 –

+0

私はすでにluceneコードを使っているものの一部をやってしまい、混乱してしまいました。とにかくあなたの答えに感謝します。私は明確な答えを提供するために助けるためにいくつかの専門家を探しています。 – realnumber

関連する問題