8.4. Lucene のスコア式のカスタマイズ


Lucene では、ユーザーは org.apache.lucene.search.Similarity を拡張することによりスコア式をカスタマイズできます。このクラスで定義された抽象メソッドはドキュメント d のクエリ q のスコアを計算する以下の式の係数に一致します。
score(q,d) = coord(q,d) · queryNorm(q) · ∑t in q ( tf(t in d) · idf(t)2 · t.getBoost() · norm(t,d) )
Expand
係数 説明
tf(t ind) ドキュメント (d) のターム (t)のターム頻度係数。
idf(t) ドキュメントのタームの頻度を反転。
coord(q,d) 指定されたドキュメントで見付かったクエリタームの数に基づいたスコア係数。
queryNorm(q) クエリ間のスコアを比較可能にするために使用する正規化係数。
t.getBoost() フィールドブースト。
norm(t,d) いくつかの (インデックス化時間) ブーストおよび長さ係数をカプセル化。
この式を詳しく説明することはこのマニュアルの範囲外です。詳細については、Similarity の Javadoc を参照してください。
Hibernate Search は、Lucene の近似値計算を変更する 2 つの方法を提供します。最初に、プロパティ hibernate.search.similarity を使用して Similarity 実装の完全修飾クラス名を指定してデフォルトの近似値を設定できます。デフォルト値は org.apache.lucene.search.DefaultSimilarity です。また、@Similarity アノテーションを使用してクラスレベルでデフォルトの近似値をオーバーライドできます。
@Entity
@Indexed
@Similarity(impl = DummySimilarity.class)
public class Book {
   ...
}
Copy to Clipboard Toggle word wrap
例として、ドキュメントにタームが現れる頻度は重要でないこととします。タームが 1 つのドキュメントのスコアは、複数のタームがあるドキュメントのスコアと同じになる必要があります。この場合、メソッド tf(float freq) のカスタム実装は 1.0 を返す必要があります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat