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
分野。この説明は、最も厳格な条件では間違っていますが、あらゆる実用的な目的において、実用性に十分に近い点に注意してください。