Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

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