14.2.2. Boosting
Lucene には boosting の概念があります。そのため、特定のドキュメントやフィールドに対して、他のドキュメントまたはフィールドよりも重要性を高くするか、低いものにすることができます。Lucene は、インデックスと検索時間の改善を区別します。以下のセクションでは、Hibernate Search を使用してインデックス時間を改善する方法を説明します。
14.2.2.1. 静的インデックスの時間の改善 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
インデックス化されたクラスまたはプロパティーの静的なブースト値を定義するには、
@Boost アノテーションを使用できます。このアノテーションは、@Field 内で使用することも、メソッドまたはクラスレベルで直接指定することもできます。
例14.17 @Boost のさまざまな使用方法
@Entity
@Indexed
@Boost(1.7f)
public class Essay {
...
@Id
@DocumentId
public Long getId() { return id; }
@Field(name="Abstract", store=Store.YES, boost=@Boost(2f))
@Boost(1.5f)
public String getSummary() { return summary; }
@Lob
@Field(boost=@Boost(1.2f))
public String getText() { return text; }
@Field
public String getISBN() { return isbn; }
}
の例14.17「@Boost のさまざまな使用方法」、
エッセイ が検索リストの一番上に到達する確率は 1.7 倍になります。Thesummaryフィールドは 3.0 になります (2 * 1.5、@Field.boostおよびプロパティーの @Boost は累積的です) より重要ですisbn分野。Thetextフィールドは 1.2 倍重要になりますisbn分野。この説明は、最も厳格な条件では間違っていますが、あらゆる実用的な目的において、実用性に十分に近い点に注意してください。