Red Hat Training
A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform
13.2.2. Boosting
Lucene comporte une notion de boosting qui vous permet de donner à certains documents ou champs plus ou moins d'importance que d'autres. Lucene fait la différence entre le boosting de temps d'indexation et de recherche. Les sections suivantes vous montrent comment réaliser un boosting de temps d'indexation à l'aide de Hibernate Search.
13.2.2.1. Boosting de temps d'indexation statique
Pour définir une valeur de boosting statique pour une classe ou propriété indexée, vous pouvez utiliser l'annotation
@Boost
. Vous pouvez utiliser cette annotation dans @Field ou l'indiquer directement au niveau méthode ou classe.
Exemple 13.17. Les différentes façons d'utiliser @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; } }
Dans l'Exemple 13.17, « Les différentes façons d'utiliser @Boost », les probabilités d'
Essay
's d'atteindre le haut de la liste de recherche seront multipliées par 1.7. Le champ summary
sera 3 fois (2 x 1.5, car @Field.boost
et @Boost
sont cumulatifs sur une propriété) plus important que le champ isbn
. Le champ text
sera 1,2 fois plus important que le champ isbn
. Veuillez noter que cette explication est fausse en théorie, mais elle est simple et proche de la réalité en pratique.