7.4.2. boosting


Lucene 具有增强概念,使您可以提供某些文档或字段的重要性比其他文档或字段多或更低。Lucene 区分索引和搜索时间提升。以下小节介绍了如何使用 Hibernate Search 实现索引时间提升。

7.4.2.1. 静态索引时间嵌套

若要为索引化的类或属性定义静态提升值,您可以使用 @Boost 注释。您可以在 @Field 内使用此注释,或者直接在方法或类级别上指定。

示例:使用 @Boost 的不同方式

@Entity
@Indexed

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; }
}
Copy to Clipboard Toggle word wrap

在上面的示例中,Essay 达到搜索列表顶部的可能性将乘以 1.7。summary 字段将为 3.0(2 * 1.5),因为属性上的 @Field.boost 和 @Boost 是累加的,比 isbn 字段更重要。文本字段将比 isbn 字段更重要 1.2 倍。请注意,该解释最严格无误,但对于所有实际用途而言,它非常简单,非常接近现实。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat